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

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

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

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

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

【问题讨论】:

  • 同一个company_id可以在表格中多次输入吗?
  • @MadhurBhaiya 是的

标签: mysql unique-constraint


【解决方案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) 等
猜你喜欢
  • 1970-01-01
  • 2011-01-31
  • 2013-05-25
  • 2012-05-11
  • 1970-01-01
  • 2012-08-10
  • 2012-01-20
  • 2010-11-16
相关资源
最近更新 更多