【问题标题】:Sql prevent duplicatesSql防止重复
【发布时间】:2018-04-04 11:39:19
【问题描述】:

我有一个名为“服务”的 MySql 表:

*Table Service*
PK serv_ID  Int(2)
Address Varchar(20)
Date Date

比我有一个表名“材料”:

*Table Materials*
 PK Mat_ID Int(2)
 Stock_Qty Int(2)
 Unit enum(m,u)

现在,对于每一项服务,我都花费了一些材料并制作了一个表格:

Service_Material
FK serv_ID
Fk Mat_ID 
Qty int(2)

如何防止每次服务,不要重复相同的材料?

【问题讨论】:

    标签: mysql sql database foreign-keys relational-database


    【解决方案1】:

    使用唯一约束或索引:

    create unique index unq_service_material_serv_mat on service_material(serv_id, mat_id);
    

    您也可以将其添加为约束(代替):

    alter table service_material
        add constraint unq_service_material_serv_mat
            unique(serv_id, mat_id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-12
      • 2016-02-19
      • 2012-08-04
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      相关资源
      最近更新 更多