我有一个系统,该系统涉及一个ajax发布请求,该请求将一行插入表中。似乎有时ajax调用会被调用两次,这意味着同一数据会在相邻的两行中插入两次。
我打算先添加一个查询,以尝试选择具有相同数据的行,然后如果行数= 0,则添加它。有没有更好的方法可以避免必须执行两个查询?
您可以在插入语句上使用INSERT IGNORE INTO语法或INSERT … ON DUPLICATE KEY UPDATE。
如果使用INSERT IGNORE,则如果该行导致重复键,则实际上不会插入该行。但是该语句不会产生错误。而是生成警告。
INSERT IGNORE INTO mytable (primaryKey, field1, field2) VALUES ('abc', 1, 2);