Как я могу проверить синтаксис SQL в .sql файл?

Есть больше (много) способов в Рим:

//=>considering predQuery[preId] is undefined:
predQuery[preId] === undefined; //=> true
undefined === predQuery[preId] //=> true
predQuery[preId] || 'it\'s unbelievable!' //=> it's unbelievable
var isdef = predQuery[preId] ? predQuery[preId] : null //=> isdef = null

ура!

23
задан Christopher Klein 5 June 2009 в 15:48
поделиться

5 ответов

Вы можете вставить его в браузер запросов, такой как MySQL Query Browser (часть пакета инструментов графического интерфейса), и визуально проверить, как окрашены ключевые слова и строковые литералы, чтобы было легче увидеть, если вы допустил какие-либо синтаксические ошибки.

http://dev.mysql.com/downloads/gui-tools/5.0.html

1
ответ дан 29 November 2019 в 03:06
поделиться

Похоже, что базовый лексер реализован в sql / sql_lex.cc. Вы можете использовать / утилизировать это для создания собственного тестового парсера. Но при этом проверяется только синтаксис, но не ошибки времени выполнения.

edit: Для MySQL 8.0+ см. Как я могу проверить синтаксис SQL в файле .sql?

5
ответ дан 29 November 2019 в 03:06
поделиться

Есть несколько бесплатных / пробных продуктов, которые позволят вам подключиться к базе данных MySQL или просто вставить скрипт для его проверки. Google здесь ваш друг. Mimer проверит валидацию синтаксиса стандарта ANSI , но, вероятно, не будет обрабатывать какие-либо особенности MySQL.

2
ответ дан 29 November 2019 в 03:06
поделиться

просто запустите его ....

начните транзакцию

запустите его

откат

1
ответ дан 29 November 2019 в 03:06
поделиться

Есть несколько возможностей. Если вы используете таблицы InnoDB, поддерживающие транзакции, вы можете просто выполнить start транзакцию; в начале вашего .sql файла и откат ; в конце. MySQL выдаст любые синтаксические ошибки.

Если вы тестируете операторы UPDATE или DELETE , вы можете добавить LIMIT 0 в конец, чтобы предотвратить выполнение этих запросов вносить какие-либо изменения в базу данных, а MySQL по-прежнему проверяет синтаксис.

1
ответ дан 29 November 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: