admin

MYSQL避免两次插入同一行

sql

我有一个系统,该系统涉及一个ajax发布请求,该请求将一行插入表中。似乎有时ajax调用会被调用两次,这意味着同一数据会在相邻的两行中插入两次。

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


阅读 187

收藏
2021-07-01

共1个答案

admin

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

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

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