Проверка синтаксиса PostgreSQL

Проверяйте запросы PostgreSQL прямо в браузере. Каждая инструкция разбирается по грамматике PostgreSQL, поэтому специфичный для Postgres синтаксис, например приведение ::, RETURNING и ON CONFLICT, проверяется корректно.

Обновлено

Ваши данные никогда не покидают ваш компьютер. Вся обработка выполняется на 100% локально в вашем браузере.

Был ли этот инструмент полезен?0.0 Оценок: 0
Онлайн SQL валидатор для MySQLPostgreSQL, SQL Server, SQLite, BigQuery и Snowflake: точная строка и столбец ошибки, плюс предупреждения о лучших практиках.SQL валидатор →

Как пользоваться: Проверка синтаксиса PostgreSQL

  1. Выберите диалект базы данных (MySQL, PostgreSQL, SQL Server, SQLite, BigQuery и другие).
  2. Вставьте или откройте свой SQL. Несколько инструкций, разделённых точкой с запятой, допустимы.
  3. Ошибки показывают строку, столбец и ожидаемые токены, а проблемное место выделяется.
  4. Корректные инструкции выводятся с их типом и затрагиваемыми таблицами, а также с предупреждениями о рискованных конструкциях.

Что проверяет валидатор SQL?

Валидатор SQL (или проверка синтаксиса) разбирает ваш запрос по грамматике конкретной базы данных и сообщает, корректно ли он составлен: сбалансированы ли скобки, идут ли ключевые слова в правильном порядке, верны ли выражения, стоят ли запятые между столбцами и так далее. Инструмент разбивает скрипт на инструкции и разбирает каждую отдельно, так что вы видите все ошибочные инструкции сразу и получаете строку и столбец, где разбор остановился. По умолчанию выбрана грамматика PostgreSQL.

Предупреждения о лучших практиках

ПредупреждениеПочему это важно
UPDATE / DELETE без WHEREИзменяет каждую строку таблицы — обычно это ошибка.
SELECT *Извлекает столбцы, которые могут не понадобиться, и ломается при добавлении или перестановке столбцов.
INSERT без списка столбцовЗависит от порядка столбцов; добавление столбца ломает запрос.
LIKE '%…'Ведущий шаблон не может использовать обычный индекс и приводит к полному сканированию таблицы.
= NULLНикогда не истинно; используйте IS NULL.
ORDER BY без LIMIT в подзапросе или LIMIT без ORDER BYПорядок строк не гарантирован без явной сортировки.

Различия диалектов, которые вызывают ошибки

  • Кавычки для идентификаторов — MySQL и MariaDB используют обратные кавычки (`order`), PostgreSQL, SQLite и стандарт SQL используют двойные кавычки, SQL Server использует квадратные скобки ([order]).
  • Ограничение количества строк — LIMIT 10 в MySQL, PostgreSQL и SQLite; TOP 10 или OFFSET … FETCH в SQL Server.
  • Upsert — ON DUPLICATE KEY UPDATE (MySQL), ON CONFLICT … DO UPDATE (PostgreSQL, SQLite) и MERGE (SQL Server, Snowflake, BigQuery).
  • Приведение типов — PostgreSQL принимает value::int; большинству других СУБД нужна конструкция CAST(value AS INT).

Частые синтаксические ошибки PostgreSQL

PostgreSQL выдаёт сообщение «syntax error at or near …» с токеном, на котором остановился разбор. Типичные причины: обратные кавычки, скопированные из MySQL (используйте двойные кавычки), двойные кавычки вокруг строковых значений (используйте одинарные, так как двойные обозначают идентификаторы), конструкция LIMIT x, y (в Postgres нужно LIMIT y OFFSET x) и пропущенная запятая в списке столбцов.

Сделать запрос читаемым поможет форматировщик SQL, генерировать инструкции из данных можно с помощью CSV в SQL или JSON в SQL, а проектировать таблицы — с генератором CREATE TABLE.

Также ищут как: проверить синтаксис sql postgres, ошибка синтаксиса psql, линтер postgres, валидатор sql postgres, syntax checker postgresql.

Инструменты, которые хорошо сочетаются с Проверка синтаксиса PostgreSQL

  • SQL валидатор — Вставьте один запрос или весь скрипт, чтобы проверить синтаксис по грамматике вашей базы данных.
  • Проверка синтаксиса MySQL — Проверьте SQL-запросы MySQL перед запуском.
  • Excel в JSON — Откройте книгу .xlsx или вставьте ячейки прямо из Excel или Google Sheets и получите чистый JSON.
  • JSON в Excel — Превратите JSON-массив в настоящую книгу Excel.

Часто задаваемые вопросы

Мой SQL отправляется на сервер или в базу данных?
Нет. Запрос разбирается в вашем браузере с помощью открытой грамматики node-sql-parser. Ничего не загружается и не выполняется.
Означает ли корректный результат, что запрос выполнится?
Это означает, что синтаксис корректен для выбранного диалекта. Валидатор не знает вашей схемы, поэтому опечатка в имени таблицы или столбца, отсутствие прав доступа или несоответствие типов проявятся только при выполнении запроса в базе данных.
Почему ошибка указывает на место после моей ошибки?
Парсер сообщает о первом токене, который не может вписать в грамматику. Опечатка в ключевом слове, например WHER, часто воспринимается как псевдоним, поэтому ошибка появляется на следующем слове. Проверьте также токен непосредственно перед отмеченной позицией.
Какие инструкции поддерживаются?
SELECT (с соединениями, подзапросами, CTE, оконными функциями, UNION), INSERT, UPDATE, DELETE, REPLACE, CREATE / ALTER / DROP TABLE, CREATE INDEX и VIEW, TRUNCATE, USE и другие — в зависимости от диалекта. Хранимые процедуры и специфичные для вендора процедурные блоки поддерживаются не полностью.
Можно ли установить Проверка синтаксиса PostgreSQL как веб-приложение и пользоваться им офлайн?
Да. Проверка синтаксиса PostgreSQL — это веб-приложение (PWA), которое можно установить из браузера, без скачивания из магазина приложений. В Chrome или Edge (Windows, macOS, Linux, ChromeOS) или на Android нажмите вверху этой страницы «Установить приложение»; на iPhone и iPad используйте «Поделиться → На экран «Домой»», а в Safari 17+ на Mac — «Файл → Добавить в Dock». После этого приложение откроется в отдельном окне со своим значком, и так как оно полностью работает в браузере, оно продолжит работать офлайн. Firefox на компьютере не умеет устанавливать веб-приложения. Как работает установка.

Похожие инструменты

localSQL валидаторВставьте один запрос или весь скрипт, чтобы проверить синтаксис по грамматике вашей базы данных. Каждый…localПроверка синтаксиса MySQLПроверьте SQL-запросы MySQL перед запуском. Валидатор разбирает каждый оператор по грамматике MySQL и…localSQL-форматтерВставьте запрос или целую миграцию и получите читаемый SQL: по одному предложению в строке, выровненные…localГенератор CREATE TABLEНастройте таблицу по столбцам: типы, первичный ключ, NOT NULL, UNIQUE, автоинкремент и значения по…localJSON в SQLВставьте JSON-массив и получите SQL, который создаёт таблицу и записывает каждый объект как строку.…localExcel в JSONОткройте книгу .xlsx или вставьте ячейки прямо из Excel или Google Sheets и получите чистый JSON. Числа,…