一括 - mysql update 複数テーブル




MySQLテーブルに挿入するか、存在する場合は更新する (6)

データベーステーブルに行を追加したいのですが、同じユニークキーを持つ行が存在する場合は、その行を更新したいと思います。

例えば、

insert into table (id, name, age) values(1, "A", 19)

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



SQLiteを使用する場合:

REPLACE into table (id, name, age) values(1, "A", 19)

idが主キーであれば それ以外の場合は、別の行を挿入するだけです。 INSERT (SQLite)を参照してください。


これを試してみてください:

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

お役に立てれば。


これを試して:

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

注意:
ここでidが主キーならば、 id='1'を挿入するたびにid='1'を挿入しようとするたびに、名前と年齢と前の名前の年齢が更新されます。


バッチ挿入を使用する場合は、次の構文を使用します。

INSERT INTO TABLE (id, name, age) VALUES (1, "A", 19), (2, "B", 17), (3, "C", 22)
ON DUPLICATE KEY UPDATE
    name = VALUES (name),
    ...

INSERT IGNORE INTO table (id, name, age) VALUES (1, "A", 19);

INTO TABLE (id, name, age) VALUES(1, "A", 19) ON DUPLICATE UPDATE SET NAME = "A", AGE = 19;

REPLACE INTO table (id, name, age) VALUES(1, "A", 19);

これらのすべてのソリューションは、あなたの質問に関して機能します。

これらのステートメントに関する詳細を知りたい場合は、 このリンクご覧ください





insert-update