Sql防止重复

时间:2018-04-04 11:39:19

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

我有一个名为“service”的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)

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

1 个答案:

答案 0 :(得分:2)

使用唯一约束或索引:

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);