# postgresql

Правило задаёт стиль PostgreSQL-запросов и схем: от snake_case до работы с датами и ключами. Пригодится, когда агент пишет или правит SQL в проекте.

- правило · `type=rule` · Cursor · ★ 3580
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/postgresql.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/sanjeed5-postgresql

## Что делает

Правило охватывает именование таблиц и столбцов, форматирование запросов и комментарии. Оно предписывает явные `JOIN`, предлагает выносить вложенные запросы в CTE и заменять `NOT IN` на `NOT EXISTS` или `LEFT JOIN ... IS NULL`. Для анализа плана запросов используется `EXPLAIN ANALYZE`.

Есть рекомендации по типам и датам: для первичных ключей — `bigint generated always as identity`, для текста — `text`, для денежных значений — `numeric` или `decimal`. Временные метки следует хранить в UTC как `timestamptz`, а диапазоны задавать через `>=` и `<`. Это правило задаёт требования к SQL для всех файлов по маске `**/*`; рекомендация не использовать `NOT IN` связана с его поведением при `NULL`.

## Требования
- Работает с: PostgreSQL

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/postgresql.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/postgresql.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/postgresql.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/postgresql.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/postgresql.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/postgresql.mdc

## Когда брать
- оформить SQL-запросы в едином стиле
- заменить неявные связи таблиц на явные `JOIN`
- переписать вложенный запрос с использованием CTE
- выбрать типы для идентификаторов, текста и денежных значений
- проверить план запроса через `EXPLAIN ANALYZE`

## Примеры запросов агенту
- Перепиши этот запрос по правилу PostgreSQL для Cursor.
- Проверь SQL в миграции: используй явные `JOIN` и не выбирай все столбцы.
- Проверь диапазон дат и типы полей в этой схеме PostgreSQL.

## Похожие
- [postgresql-database-engineering](https://affpapa.org/nevibecode/skills/postgresql-database-engineering.md) — скилл · 1800 установок
- [postgresql-best-practices](https://affpapa.org/nevibecode/skills/postgresql-best-practices.md) — скилл · 1500 установок
- [PostgreSQL Database Administration](https://affpapa.org/nevibecode/skills/postgresql-database-administration.md) — скилл · 452 установки
- [postgresql-expert](https://affpapa.org/nevibecode/skills/postgresql-expert.md) — скилл · 424 установки
- [postgresql-expert-best-practices-code-review](https://affpapa.org/nevibecode/skills/postgresql-expert-best-practices-code-review.md) — скилл · 387 установок
- [PostgreSQL Database Administrator](https://affpapa.org/nevibecode/agents/postgresql-database-administrator.md) — субагент · ★ 40478

## Другие версии с тем же именем
- [postgresql · patrickjs](https://affpapa.org/nevibecode/rules/postgresql.md) — ★ 41028

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 240 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
