2014-02-06 4 views
1

В настоящее время я работаю над автоматическим процессом сборки, который также будет выполнять некоторые изменения в базе данных. Это могут быть любые утверждения (ALTER; SELECT; UPDATE; CREATE; DROP ...) Я бы хотел, чтобы сборка была неудачной, если в этих SQL-скриптах есть синтаксические ошибки.Поиск инструмента для проверки (My) SQL-синтаксиса

После обыска в Интернете в течение нескольких часов я, наконец, решил спросить программу volk для любой помощи.

Я действительно не хочу сам развивать этот инструмент. Разработка его сама по себе означает ее сохранение и даже рискнуть отсутствием данных в некоторых случаях. (Если мне нужно выполнить заявление и я не могу откат.)

Что я ищу - это инструмент с открытым исходным кодом, который по-прежнему поддерживается. Идеально было бы найти этот инструмент в репозиториях некоторых дистрибутивов Linux.

Кто-нибудь знает такой инструмент?

Я уже нашел некоторую онлайн-проверку SQL, но я не хочу отправлять внутренние данные во внешние сети.

EDIT: Возможно, мне нужно предоставить дополнительную информацию о предыстории. Процесс сборки будет использоваться непрерывной системой интеграции. Я хочу, чтобы shure исполняемые файлы sql исполнялись. Поэтому я хотел бы добавить муравьиную задачу типа «testScript» в buildscript, которая возьмет SQL-Script, проверит синтаксис и завершит сбой при сбоях. Например, может случиться, что разработчик завершил утверждение и скопировал заявление в SQL-Script, но просто выбрал «TER TABLE» вместо «ALTER TABLE». Проверщик синтаксиса, который я ищу, должен найти эти простые виды ошибок, которые не смогут выполнить сборку на более позднем этапе и заставят сборку работать с ошибкой раньше. В лучшем случае он может выводить ошибочное утверждение и позицию, чтобы в течение некоторого времени исправлять ошибки.

+0

Вы можете проверить ответ на тот же вопрос здесь http://stackoverflow.com/questions/956507/how-can-i-check-the-sql-syntax-in-a-sql-file –

+0

Я видел эти ответы, но ничто из этого не соответствует моему вопросу. транзакции: разработать инструмент тестирования самостоятельно | онлайн-чекер: данные из частной сети | использовать базовый лексер: самостоятельно разработать инструмент –

+0

Если ваши операторы sql находятся в отдельной строке, вы можете проверить синтаксис sql, выполнив простую последовательность команд. Я добавил ответ, объясняющий, как здесь: http://stackoverflow.com/a/37019893/28037 – culix

ответ

0

Посмотрите на dbForge Studio for MySQL, у него есть code complition feature с функцией автоматической проверки синтаксиса SQL.

Откройте новый документ SQL, напишите какой-либо код или откройте существующий файл SQL, и вы увидите синтаксические ошибки, если они есть.

+0

Можно ли использовать эту проверку как часть процесса сборки? например, вызов bebforge -checksql test.sql'? –

+0

В настоящее время проверка синтаксиса не поддерживает командную строку. Вы можете предложить эту функцию на странице «Пользовательский голос пользователя» - http://devart.uservoice.com/forums/77293-dbforge-studio-for-mysql – Devart

Смежные вопросы