如何使用如果存在更新else插入mysql 5.0?

时间:2015-07-16 18:29:39

标签: mysql

我收到了这个错误 MySQL说:文档

1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便在' IF EXISTS附近使用正确的语法(SELECT * FROM table_name WHERE name =' Smith' AND id = 4)那么

UPDA'在第1行

当我尝试这段代码时

IF EXISTS (SELECT * FROM table_name WHERE name =  'Smith' AND id =4) THEN 
UPDATE table_name SET name =  'Test', tele =45 WHERE id =4 ELSE 
INSERT INTO table_name( id, name, address, tele ) 
VALUES ( 5,  'John',  'NY', 56 );

复制键上的插入需要一些我在桌子上没有的唯一键。

请帮忙吗?我坚持了几天。

1 个答案:

答案 0 :(得分:0)

使用on duplicate key insert

首先在表上定义唯一索引。实际上,如果id是主键,那么您可以跳过此步骤。

我认为你想要这样的东西:

INSERT INTO table_name( id, name, address, tele ) 
    VALUES ( 5,  'John',  'NY', 56 )
    ON DUPLICATE KEY UPDATE name = 'Test', tele = 45;

这不是完全你的逻辑,但我认为这种行为更合理。如果4, john在表格中,您的版本会在4, <anything not Smith>处插入重复的行。