唯一字符串

vptzau2j  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(318)

这是我的table

id       some_column           store_id                  
1         (Excl. Tax)             1
2         (Incl. Tax)             1
3         Target Rule/Product     1       
4         File %1 does not exist  1         
5         hello                   1
6         hello                   2 <--- valid because store_id is 2 If its 1 then it should invalid as I want unique string for each store

...

哪里 id 是自动递增主键, some_column 有瓦尔查尔,它有 unique constraint 以及 store_id 是我的商店的id(可以是1、2或3,以此类推)
在这个表中,一切都正常,但当我有store\u id有2时,我添加了store\u id为1的字符串,然后它给了我唯一的约束冲突发现错误。但是我想避免这个错误,因为它有不同的store\u id。那么我该如何实现呢?你知道吗?
编辑

CREATE TABLE `comment_data` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID',
  `test_text` varchar(255) NOT NULL COMMENT 'Test String',
  `store_id` smallint(5) unsigned NOT NULL COMMENT 'Store ID',
  `translation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Modification Time',
  PRIMARY KEY (`id`,`store_id`),
  UNIQUE KEY `CUSTOMER_TEST_TEXT` (`test_text`),
  KEY `CUSTOMER_STORE_ID` (`store_id`),
  CONSTRAINT `CUSTOMER_STORE_ID_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='comment_data';
llmtgqce

llmtgqce1#

将唯一约束添加到两个 some_column 以及 store_id 柱:

ALTER TABLE yourTable ADD UNIQUE u_idx (some_column, store_id);

如果您已经对 some_column ,那么您可能必须先删除:

ALTER TABLE yourTable DROP INDEX old_idx;

相关问题