我测试了这段代码:
UPDATE books SET price='20000' WHERE user_id='2'
IF ROW_COUNT()=0
INSERT INTO store_books(name,user_id) VALUES ('test1','2')
我遇到了以下错误。
error : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF ROW_COUNT()=0 INSERT INTO store_books(name,user_id) VALUES ('test1','2')' at line 2
有什么办法可以解决这个问题吗?
我不想使用 INSERT INTO ... ON DUPLICATE KEY UPDATE(因为我的主表中有多个键)。
以上例子是寻找新出路的尝试。
我想要的图案: 更新(如果存在) ELSE 插入。
最佳答案
两件事:
INSERT ... ON DUPLICATE KEY UPDATE ...
是迄今为止完成您想做的事情的最佳方式。如果您不这样做,您将不得不使用数据库事务来确保您保持所需操作的完整性。- MySQL(与 MS SQL 服务器不同)不允许有条件地执行查询,但在存储过程中除外。读这个。 If conditional in SQL Script for Mysql
关于mysql - 在 mysql 中更新 else INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52333997/