我必须在mysql表中插入一些值,但前提是没有其他(几乎)相等的行,例如:
TABLE T
KEY | COL1 | COL2
1 | abc | 123
2 | def | 456
键列使用自动递增,我不会在语句中通知它,如下所示:
INSERT INTO T (COL1, COL2) VALUES (abc, 123)
上面的语句与第一行的值相同。如果行是这样的重复行,如何通知mysql我不想插入?
我搜索了一些解决方案,发现 INSERT IGNORE, ..ON DUPLICATE KEY UPDATE and REPLACE
其中我必须通知pk,但我不知道(不使用额外的查询)。
3条答案
按热度按时间sg3maiej1#
xbp102n02#
ON DUPLICATE KEY
以及INSERT IGNORE
将使用任何唯一索引,而不仅仅是主键。因此,可以为这些列添加唯一索引:使其成为多列索引意味着组合必须是唯一的,即使每个列可以单独复制。
vc6uscn93#
你可以像。。。