我不是很熟悉MySQL。但是出于性能原因,我想避免检查行是否已经存在。目前,我有一个包含2列(数字,计数)的表,并且执行以下操作:
SELECT num FROM numbers WHERE num = 123
那么如果行存在...
UPDATE numbers SET count = count + 456 WHERE num = 123
否则,如果行不存在...
INSERT INTO numbers (num, count) VALUES (123, 456)
是否有可能避免始终查询表。像触发器一样...最后,我只想进行一个更新,以便自动完成插入。提前致谢
最佳答案
您不需要使用触发器,只需将UNIQUE约束添加到num
列,然后:
INSERT INTO numbers SET num = 123, count = 456 ON DUPLICATE KEY UPDATE count = count + 1;
另外,请勿对列名使用保留字,例如COUNT。
关于mysql - MySQl:如果不存在,则在更新之前触发插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7432520/