update-else-insert在mysql中的应用

xtupzzrd  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(251)

我测试了这个代码:

UPDATE books SET price='20000' WHERE user_id='2'
IF ROW_COUNT()=0
INSERT INTO store_books(name,user_id) VALUES ('test1','2')

我遇到了以下错误。
错误:您的sql语法有错误;请查看与您的mariadb服务器版本对应的手册,以了解在第2行“if row\u count()=0 insert into store\u books(name,user\id)values('test1','2')”附近使用的正确语法
有解决这个问题的办法吗?
我不想使用插入。。。在重复键更新时(因为我的主表中有多个键)。
上面的例子是寻找新方法的尝试。
我想要的模式:update(如果存在)else insert。

6ie5vjzr

6ie5vjzr1#

两件事: INSERT ... ON DUPLICATE KEY UPDATE ... 是做你想做的事的最好方法。如果不这样做,则必须使用数据库事务来确保所需操作的完整性。
mysql(不像mssqlserver)不允许有条件地执行查询,除非在存储过程中。读这个。mysql的sql脚本中的if条件

相关问题