mysql中多列的唯一约束[重复]

Posted

技术标签:

【中文标题】mysql中多列的唯一约束[重复]【英文标题】:unique constraints for multiple columns in mysql [duplicate] 【发布时间】:2019-02-27 07:41:44 【问题描述】:

伙计们,我在 DB 中有那个表

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

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

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

【问题讨论】:

同一个company_id可以在表格中多次输入吗? @MadhurBhaiya 是的 【参考方案1】:

您需要在表中添加 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)

【讨论】:

但是通过这个我可以在同一个 company_id 中输入相同的条形码,这就是我不想发生的事情 @firstNamelastName 不,它不允许相同的公司 ID 使用相同的条形码,因为它们将是重复的,并且此约束会阻止在表中创建重复项 但它不允许重复 companyID !!! @firstNamelastName 将允许。例如:公司 id = 1,它将允许 (1, 'abc') , (1, 'cdf'), (1, 'efg) 等

以上是关于mysql中多列的唯一约束[重复]的主要内容,如果未能解决你的问题,请参考以下文章

实体框架中多列的唯一键约束

Sql Server 主键 外键约束

多列的唯一约束

CoreData(IOS)多列的唯一约束?

mysql唯一约束

将房间数据库中的唯一约束添加到多列