私は周りを検索しましたが、それが可能かどうかはわかりませんでした。
私はこのMySQLクエリを持っています:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
フィールドIDには「一意のインデックス」があるため、2つ存在することはできません。同じIDがデータベースに既に存在する場合は、更新します。しかし、本当にこれらすべてのフィールドをもう一度指定する必要がありますか?
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=2,b=3,c=4,d=5,e=6,f=7,g=8
または:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g)
私はすでにインサートにすべてを指定しました...
追加のメモ、IDを取得するための回避策を使用したいと思います!
id=LAST_INSERT_ID(id)
誰かが私に最も効率的な方法を教えてくれることを願っています。
a=VALUES(a), b=VALUES(b), ...
は、あなたが行く必要がある方法です。それが私のすべてのINSERT ON DUPLICATE KEY UPDATE
発言に対してそうする方法です。