Поскольку синтаксис эквивалентен (во всяком случае, в MySQL), я предпочитаю синтаксис INSERT INTO table SET x=1, y=2
, поскольку его легче модифицировать и легче отлавливать ошибки в операторе, особенно при вставке большого количества столбцов. Если вам нужно вставить 10 или 15 или более столбцов, то, на мой взгляд, действительно легко что-то перепутать, используя синтаксис (x, y) VALUES (1,2)
.
Если переносимость между различными стандартами SQL является проблемой, тогда, возможно, INSERT INTO table (x, y) VALUES (1,2)
предпочтительнее.
И если вы хотите вставить несколько записей в одном запросе, не похоже, что синтаксис INSERT INTO ... SET
будет работать, тогда как другой будет работать. Но в большинстве практических случаев вы циклически просматриваете набор записей для вставки в любом случае, хотя могут быть случаи, когда, возможно, создается один большой запрос для вставки набора строк в таблицу в одном запросе по сравнению с запросом для каждая строка может иметь улучшение производительности. На самом деле не знаю.