我对MySQL并不熟悉。但出于性能原因,我想避免检查行是否已存在。目前我有一个包含2列(num,count)的表,我做了类似的事情:
SELECT num FROM numbers WHERE num = 123
然后如果行存在......
UPDATE numbers SET count = count + 456 WHERE num = 123
否则如果行不存在......
INSERT INTO numbers (num, count) VALUES (123, 456)
是否有可能避免始终查询表格。像触发器一样...最后,我只想进行更新,以便自动完成插入。提前谢谢
答案 0 :(得分:2)
您不需要使用触发器,您只需要在您的num
列中添加UNIQUE约束,然后:
INSERT INTO numbers SET num = 123, count = 456 ON DUPLICATE KEY UPDATE count = count + 1;
此外,请勿对COUNT等列名使用保留字。