Я искал вокруг, но не нашел, если это возможно.
У меня есть этот запрос MySQL:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,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=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=LAST_INSERT_ID(id)
Я надеюсь, что кто-нибудь скажет мне, что является наиболее эффективным способом.
a=VALUES(a), b=VALUES(b), ...
это путь, по которому вам нужно идти. Вот как я делаю это для всех моихINSERT ON DUPLICATE KEY UPDATE
заявлений.