В настоящее время я работаю над автоматическим процессом сборки, который также будет выполнять некоторые изменения в базе данных. Это могут быть любые утверждения (ALTER; SELECT; UPDATE; CREATE; DROP ...) Я бы хотел, чтобы сборка была неудачной, если в этих SQL-скриптах есть синтаксические ошибки.Поиск инструмента для проверки (My) SQL-синтаксиса
После обыска в Интернете в течение нескольких часов я, наконец, решил спросить программу volk для любой помощи.
Я действительно не хочу сам развивать этот инструмент. Разработка его сама по себе означает ее сохранение и даже рискнуть отсутствием данных в некоторых случаях. (Если мне нужно выполнить заявление и я не могу откат.)
Что я ищу - это инструмент с открытым исходным кодом, который по-прежнему поддерживается. Идеально было бы найти этот инструмент в репозиториях некоторых дистрибутивов Linux.
Кто-нибудь знает такой инструмент?
Я уже нашел некоторую онлайн-проверку SQL, но я не хочу отправлять внутренние данные во внешние сети.
EDIT: Возможно, мне нужно предоставить дополнительную информацию о предыстории. Процесс сборки будет использоваться непрерывной системой интеграции. Я хочу, чтобы shure исполняемые файлы sql исполнялись. Поэтому я хотел бы добавить муравьиную задачу типа «testScript» в buildscript, которая возьмет SQL-Script, проверит синтаксис и завершит сбой при сбоях. Например, может случиться, что разработчик завершил утверждение и скопировал заявление в SQL-Script, но просто выбрал «TER TABLE» вместо «ALTER TABLE». Проверщик синтаксиса, который я ищу, должен найти эти простые виды ошибок, которые не смогут выполнить сборку на более позднем этапе и заставят сборку работать с ошибкой раньше. В лучшем случае он может выводить ошибочное утверждение и позицию, чтобы в течение некоторого времени исправлять ошибки.
Вы можете проверить ответ на тот же вопрос здесь http://stackoverflow.com/questions/956507/how-can-i-check-the-sql-syntax-in-a-sql-file –
Я видел эти ответы, но ничто из этого не соответствует моему вопросу. транзакции: разработать инструмент тестирования самостоятельно | онлайн-чекер: данные из частной сети | использовать базовый лексер: самостоятельно разработать инструмент –
Если ваши операторы sql находятся в отдельной строке, вы можете проверить синтаксис sql, выполнив простую последовательность команд. Я добавил ответ, объясняющий, как здесь: http://stackoverflow.com/a/37019893/28037 – culix