mysql中多列的唯一约束

时间:2018-09-23 17:07:14

标签: mysql

我在DB中有那个桌子

-------------------------------------------------------------
ID | COMPANY_ID | NAME | DESCRIPTION | BARCODE 
-------------------------------------------------------------

我想限制唯一的条形码应使用相同的companyID设置 ....因此,如何在mysql中做到这一点?

注意:我可以在表格中输入多个company_id

1 个答案:

答案 0 :(得分:2)

您需要在表COMPANY_IDBARCODE上添加复合UNIQUE constraint。这基本上意味着,对于上述两个字段,不允许具有重复值组合的行。它仍然可以分别允许其中一个重复值。

例如:(1, 'abc')组合将不能多于一行。但是,(1, 'abc')(1, 'def')可以存在。因此,它允许单独重复值(在此示例中为Company_id

执行以下操作(相应地更改表和列的名称):

ALTER TABLE your_table_name 
ADD CONSTRAINT unique_barcode_company UNIQUE (COMPANY_ID, BARCODE)