mysql 中多列的唯一约束

fir*_*ame 2 mysql unique-constraint

伙计们,我在数据库中有那个表

-------------------------------------------------------------
ID | COMPANY_ID | NAME | DESCRIPTION | BARCODE 
-------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我想限制唯一的条形码应该使用相同的 companyID .... 那么如何在 mysql 中做到这一点?

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

Mad*_*iya 5

您需要在和,上添加复合唯一约束到您的表。这基本上意味着对于上述两个字段,它不允许具有重复值组合的行。它仍然可以为其中任何一个单独允许重复值。COMPANY_IDBARCODE

例如:(1, 'abc')组合将不能存在多于一行。然而(1, 'abc')(1, 'def')可以存在。所以它允许单独的重复值(Company_id在这个例子中)

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

ALTER TABLE your_table_name 
ADD CONSTRAINT unique_barcode_company UNIQUE (COMPANY_ID, BARCODE)
Run Code Online (Sandbox Code Playgroud)