Использование RETURNING в SQL: присвоение id переменной

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы присвоить результат операций INSERT или UPDATE переменной, используйте RETURNING в паре с CTE (Common Table Expression) в PostgreSQL. Приведенный ниже пример иллюстрирует это:

SQL
Скопировать код
WITH insert_return AS (
  INSERT INTO example_table (column_name) VALUES ('awesome_data')
  RETURNING id
)
SELECT id INTO local_var FROM insert_return;

В этом случае id, полученный при вставке в example_table, прямо присваивается переменной local_var.

Кинга Идем в IT: пошаговый план для смены профессии

Советы для укрепления вашего SQL-арсенала

1. Усиливаем переменные путем определения типов данных

Явное указание типов данных для переменных позволяет предотвратить ошибки в SQL-запросах и гарантировать надежное хранение данных. В PostgreSQL доступны удобные атрибуты %TYPE и %ROWTYPE, которые автоматически копируют тип данных из структуры таблицы.

SQL
Скопировать код
DECLARE
  my_variable example_table.column_name%TYPE;

2. Структурируем SQL как хорошо спланированное путешествие

Не начинайте выполнение кода без предварительного объявления переменных и ясного определения структуры таблиц. Это поможет избежать ошибок в обработке данных.

3. Учитываем платформу

Разные СУБД работают синтаксисом RETURNING по-своему. Прежде чем применять эту конструкцию, убедитесь, что она поддерживается вашей системой управления базами данных.

SQL, новый уровень: Продвинутое использование и бескомпромиссная обработка ошибок

Обертываем операции в блок DO

Если вы работаете вне функции или процедуры, используйте блок DO для создания контекста выполнения ваших SQL-команд.

SQL
Скопировать код
DO $$
DECLARE
  local_var INT;
BEGIN
  WITH insert_and_return AS (
    INSERT INTO my_table (data)
    VALUES ('Important') RETURNING id
  )
  SELECT id INTO local_var FROM insert_and_return;
END $$;

Тонкости синтаксиса: Секретный язык SQL

Стандартный формат записи при присвоении значений переменным выглядит следующим образом:

SQL
Скопировать код
INSERT INTO table_name (column_name)
VALUES ('insert_value')
RETURNING other_column INTO local_var;

Правильное использование этой формы записи поможет избегать ошибок исполнения.

Визуализация

Понимание работы RETURNING упрощается благодаря примерам. Рассмотрим SQL-транзакцию:

SQL
Скопировать код
UPDATE bank_accounts SET balance = balance – 100 WHERE account_id = 42 RETURNING balance INTO :new_balance;

Визуализация этого процесса:

Markdown
Скопировать код
До: 💰 [Баланс: $500]
Действие: 💸 Снятие $100
После: 💰 [Баланс: $400]

RETURNING позволяет мгновенно получать обновленное значение баланса.

Визуальная отладка: Прорисовываем невидимые детали

Визуализация потоков данных в SQL-операциях облегчает отладку и помогает лучше понимать логику запроса.

Обработка ошибок: Превращаем точки боль в возможности для обучения

Следите за соответствием типов данных и правильной обработкой null-значений, чтобы избежать распространенных ошибок.

Опыт приобретается практикой, как говорят

Для освоения различных сценариев использования RETURNING, активно используйте эту конструкцию на практике.

Полезные материалы

  1. PostgreSQL: Документация: 6.4. Возвращение данных из модифицированных строк — официальное описание функционала RETURNING.
  2. Примеры использования RETURNING – вики PostgreSQL — примеры использования на странице вики PostgreSQL.
  3. Демонстрационное видео использования RETURNING в PostgreSQL — визуальное объяснение работы конструкции RETURNING.