接受mysql中唯一列中的空值

nimxete2  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(309)

我有这张table

----------------------------------------
ID | company_id | barcode | product_name
----------------------------------------

我想为company和barcode列做一个唯一的约束,这样就不一样了 company_id 可以有相同的条形码号码。。。但你能做到吗 company_id 只能有空条形码。。。那么如何在mysql中做到这一点呢?
任何帮助都将不胜感激。。谢谢

guicsvcw

guicsvcw1#

可以将复合唯一键添加为:

ALTER TABLE sometable_name ADD UNIQUE INDEX `unq_indx` (`company_id`,`barcode`);

允许同一公司名称的条形码列中有多个空值。

5gfr0r5j

5gfr0r5j2#

需要添加复合唯一约束:

ALTER TABLE your_table_name
ADD CONSTRAINT unique_barcode_company_idx UNIQUE (company_id, barcode);

sql fiddle演示

细节:
mysql允许多个 NULL 具有唯一约束的列中的值。
所以,基本上可以有多行包含 (1, null) ,在哪里 1 是为 company_id 以及 null 为了 barcode

相关问题