如果不存在,则插入,否则更新不带有DUPLICATE KEY或存储过程Mysql

时间:2019-04-25 02:00:52

标签: mysql database

我想插入(如果不存在)在MySQL中带有查询的其他更新但失败。 到目前为止,我发现的是。

IF EXISTS(SELECT * FROM `subject` WHERE `branch_id` = 1) 
   THEN 
        BEGIN
            UPDATE `subject` SET (`name` ='KHAN') 
            WHERE `branch_id` = 1
        END        
    ELSE
        BEGIN
            INSERT INTO `subject` (`name`,`branch_id`) 
            VALUES('AMAAN', 1) 
        END 
END IF  

我得到的是

Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT * FROM `subject` WHERE `branch_id` = 1) 

1 个答案:

答案 0 :(得分:0)

也许尝试从客户端程序中获取多个语句?首先执行update,然后如果ROW_COUNT()或等效值为0,则执行插入。当然insert on duplicate key update更简单。