3

最初のレコードのフィールドを使用して更新する代わりに、削除->挿入を使用する方法はありますか?

更新の例:

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
4

2 に答える 2

4

tadman が言ったように、私は REPLACE がこれをよりよく達成すると思います:

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

于 2013-11-20T17:20:07.147 に答える
3

これを試して:

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;
于 2012-12-21T17:20:59.907 に答える