1038

データベースのテーブルに行を追加したいのですが、同じ一意キーを持つ行が存在する場合、その行を更新したいと考えています。

例えば:

INSERT INTO table_name (ID, NAME, AGE) VALUES(1, "A", 19);

一意のキーがIDで、データベースに の行があるとしID = 1ます。その場合、その行をこれらの値で更新したいと思います。通常、これはエラーになります。
使用INSERT IGNOREするとエラーは無視されますが、それでも更新されません。

4

11 に答える 11

1879

使用するINSERT ... ON DUPLICATE KEY UPDATE

クエリ:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE    
name="A", age=19
于 2010-11-17T14:12:56.693 に答える
285

REPLACEをご覧ください

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

REPLACE into table (id, name, age) values(1, "A", 19)
于 2010-11-17T14:14:06.350 に答える
26

これを試してください:

INSERT INTO table (id, name, age) VALUES (1, 'A', 19) ON DUPLICATE KEY UPDATE id = id + 1;

お役に立てれば。

于 2010-11-17T14:17:32.200 に答える
25

これを試して:

INSERT INTO table (id,name,age) VALUES('1','Mohammad','21') ON DUPLICATE KEY UPDATE name='Mohammad',age='21'

注:
ここで id が主キーの場合、最初の挿入後、挿入をid='1'試行するたびにid='1'名前と年齢が更新され、以前の名前の年齢が変更されます。

于 2014-08-27T07:42:46.930 に答える