Поскольку синтаксические эквивалентен (в 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
будет работать, тогда как другой будет. Но в большинстве практических случаев вы в любом случае зацикливаете набор записей, чтобы делать вставки, хотя могут быть некоторые случаи, когда возможно построить один большой запрос, чтобы вставить кучу строк в таблицу в одном запросе, а также запрос для каждая строка может улучшить производительность. На самом деле не знаю.
После прочтения кода Complete и постоянного акцента McConnell на удобочитаемость, кажется неудачным, что 'INSERT INTO table SET' не является стандартным. Это кажется намного яснее. Я предполагаю, что мне придется использовать таблицу INSERT INTO ([имя столбца, имя столбца b]). VALUES (['a a', 'value b']) 'синтаксис в любом случае, чтобы спасти себя от проблем, если я переношу к Postgres. – cluelesscoder
Этот вопрос стал вирусом, как видео Kanye! – aMazing