MYSQL 避免插入同一行两次

标签 mysql sql

我有一个系统涉及一个 ajax post 请求,该请求将一行插入到表中。好像有时候ajax调用会被调用两次,意思是同一个数据在相邻的两行插入两次。

我打算先添加一个查询来尝试选择具有相同数据的行,然后如果行数 = 0 则添加它。有没有更好的方法可以避免执行两次查询?

最佳答案

您可以在插入语句中使用 INSERT IGNORE INTO 语法或 INSERT...ON DUPLICATE KEY UPDATE。

如果您使用 INSERT IGNORE,那么如果该行导致重复键,则不会实际插入该行。但是该语句不会产生错误。它会生成警告。

INSERT IGNORE INTO mytable
    (primaryKey, field1, field2)
VALUES
    ('abc', 1, 2);

关于MYSQL 避免插入同一行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154387/

相关文章:

mysql - Docker中MySQL密码的最佳实践

mysql - 如何格式化这个 mysql 查询

php - MySql 语法错误 - 列的名称有数字

sql - 如何将 YYYYMMDDHHMMSS 转换为 2013-11-24 11 :29:07 in postgres

mysql - 如何将可重复的分区作为一个又一个的新分区?

java - 未配置连接

java - 检测 UPDATE 语句中哪些 SQL 列发生了更改

mysql - 动态创建表的数据库设计

sql - 如何查找子表(一对多)中哪些行至少有一个非空字段,哪些行只有空字段?

php - 在 mySQL 中搜索包含来自 mysql_real_escape_string() 的斜杠的名称