我必须将一些值插入到 mysql 表中,但前提是没有其他(几乎)相等的行,例如:
TABLE T
KEY | COL1 | COL2
1 | abc | 123
2 | def | 456
KEY 列使用自动递增,我没有在语句中告知它,如下所示:
INSERT INTO T (COL1, COL2) VALUES (abc, 123)
上面的语句与第一行具有相同的值。如果该行是这样的重复行,我如何通知 mysql 我不想插入?
我在谷歌上搜索了一些解决方案,发现INSERT IGNORE, ..ON DUPLICATE KEY UPDATE and REPLACE
,其中我必须通知PK,但我不知道(不使用额外的查询)。
最佳答案
你可以这样做......
> INSERT INTO memos(id,text)
> SELECT 5, 'text to insert'
> WHERE NOT EXISTS(SELECT 1 FROM memos WHERE id = 5 AND text = 'text to insert');
关于MySQL - 不重复行的 INSERT(不通知 PK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849271/