SQL-редактор
В основе SQL-редактора — Monaco (тот же движок, что в VS Code), доточенный под PostgreSQL: автокомплит таблиц/колонок/функций, форматирование sql-formatter, multi-cursor, подсветка ошибок до запуска.
Создать вкладку с редактором
- Кнопка + New в табах редактора.
- Двойной клик на таблице в схеме → откроется вкладка
SELECT * FROM ....
- Из истории — двойной клик на запросе скопирует его в новую вкладку.
Запуск запросов
| Действие |
Сочетание |
| Запустить текущий statement (где курсор) |
⌘+Enter |
| Запустить только выделение |
⌘+Shift+Enter |
| EXPLAIN текущий statement |
⌘+E |
| EXPLAIN ANALYZE |
⌘+Shift+E |
Если в вкладке несколько SELECT-ов через ;, ide99 выполняет тот, в котором стоит курсор. Чтобы выполнить все — выделите всё (⌘+A) и ⌘+Shift+Enter.
Автокомплит
Срабатывает по Ctrl+Space и автоматически по мере ввода.
Подсказывает:
- Таблицы — все из текущей схемы и из
search_path.
- Колонки — после
SELECT, после имени таблицы (orders.<TAB>), внутри WHERE/GROUP BY/ORDER BY.
- Функции — встроенные (count, now, jsonb_path_query, …) и пользовательские из текущей схемы.
- JSONB-пути — если включено сканирование схемы, после
data-> подскажет реальные ключи (например, 'flags', 'channel').
- Ключевые слова SQL.
Дерево схемы и автокомплит обновляются при подключении и через ⌘+R. Если создали таблицу из другого клиента — нажмите Refresh.
Форматирование
⌘+Shift+F отформатирует текущий запрос. Под капотом — sql-formatter с пресетом под Postgres:
-- было
select id,name from users where created_at > now()-interval '7 days' order by id desc
-- стало
SELECT
id,
name
FROM users
WHERE created_at > now() - interval '7 days'
ORDER BY id DESC
Параметры (отступ, регистр ключевых слов) можно поменять в Настройки → Общие.
Multi-cursor
Как в VS Code:
| Действие |
Сочетание |
| Добавить курсор на следующее вхождение |
⌘+D |
| Добавить курсор выше / ниже |
⌘+Alt+↑ / ↓ |
| Добавить курсор по клику |
Alt+click |
| Добавить курсоры на все вхождения |
⌘+Shift+L |
Комментарии
| Действие |
Сочетание |
Toggle комментарий строки (--) |
⌘+/ |
Toggle блочного (/* */) |
⌘+Shift+/ |
Подсветка ошибок
Если в SQL синтаксическая ошибка — Monaco подчеркнёт её красным до запуска. Если запустили и Postgres вернул ошибку — модальное окно покажет:
- Текст ошибки от сервера
- Plain English explanation — перевод SQLSTATE на человеческий («UNIQUE-индекс на email уже содержит этот адрес» вместо «23505»)
- Подсветка строки в редакторе
Подробнее: Что-то пошло не так.
Совет: использование переменных
Postgres-расширение psql \set не работает в обычном клиенте, но есть WITH:
WITH params AS (
SELECT
50000 AS customer_id_min,
interval '7 days' AS recent
)
SELECT count(*) FROM events e, params p
WHERE e.customer_id > p.customer_id_min
AND e.event_at > now() - p.recent;
Это даёт «параметры» в одном месте и легко редактируется.
Что дальше