更新mysql

时间:2018-09-14 14:27:04

标签: mysql sql mariadb

我测试了这段代码:

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服务器版本,以使用正确的语法   在'IF ROW_COUNT()= 0附近插入到store_books(name,user_id)VALUES中   ('test1','2')'在第2行

是否有解决此问题的解决方案?

我不想在插入重复键时使用INSERT INTO ...(因为我的主表中有多个键)。

上面的示例是寻找新方法的尝试。

我想要的模式: 更新(如果存在)ELSE插入。

1 个答案:

答案 0 :(得分:1)

两件事:

    到目前为止,
  1. INSERT ... ON DUPLICATE KEY UPDATE ...是您要做的最佳方法。如果不这样做,则必须使用数据库事务来确保要维护的完整性。
  2. 除存储过程外,MySQL(不同于MS SQL Server)不允许条件执行查询。读这个。 If conditional in SQL Script for Mysql