MySQL - 不重复行的 INSERT(不通知 PK)

标签 mysql database duplicates

我必须将一些值插入到 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/

相关文章:

mysql - 'select into' 语句在带有游标的 mysql 存储过程中不起作用

mysql - 左连接-->聚合函数问题

c++ - 伯克利数据库 : exclusive lock for a whole database

MySQL 在同一列中查找类似项

iphone - 删除 nsarray 中的重复项

mysql - 使用外键跟踪新关系中的所有权

mysql - 在 Mysql/Mariadb 中删除 --temporary-- 索引

database - 基于 Web 的应用程序的缺点是什么

sql - 不使用 order by 子句对结果进行排序

java - 从 Arraylist 中获取 float 而不是对象