MySQL DELETE INSERT而不是UPDATE

时间:2012-12-21 16:49:08

标签: mysql sql-update

有没有办法使用delete-> insert而不是使用第一条记录中的字段进行更新?

更新示例:

TABLE
---------
ID (int)  | VAL_1(VARCHAR)  | VAL_2 (VARCHAR)

消息1:INSERT INTO TABLE VALUES (1, "first message", "some val");

消息2:UPDATE TABLE SET ID=2 WHERE ID=1

相反,我需要删除第一条记录并插入一条新记录。有没有办法使用像:

这样的消息
INSERT INTO TABLE VALUES(2, VAL_1 from RECORD WHERE ID=1, VAL_2 from the record WHERE ID=1);
DELETE FROM TABLE WHERE ID=1

2 个答案:

答案 0 :(得分:2)

试试这个:

INSERT INTO table (id, val_1, val_2) 
SELECT id+1, val_1, val_2 
FROM table WHERE id =1;

DELETE FROM table WHERE ID=1;

答案 1 :(得分:2)

像塔德曼说的那样,我认为REPLACE可以做得更好:

http://dev.mysql.com/doc/refman/5.5/en/replace.html