我有一个系统涉及一个 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/