Метод returning класса Insert
Метод returning класса Insert
указывает, какие столбцы или SQL-выражения
должны быть возвращены базой данных после
выполнения команды INSERT. Это
позволяет получить сгенерированные значения,
например автоинкрементный первичный ключ,
значения по умолчанию или вычисляемые
на стороне СУБД поля, без выполнения
дополнительного запроса SELECT.
Метод принимает произвольное число столбцов
таблицы или выражений и возвращает новый
объект Insert.
Синтаксис
insert(table).returning(*columns)
Пример
Давайте вставим строку в таблицу и вернем сгенерированный идентификатор:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
Column('text', String),
)
metadata.create_all(engine)
stmt = articles.insert().returning(articles.c.id)
with engine.connect() as conn:
res = conn.execute(stmt, {'title': 'article', 'text': 'some text'})
print(res.fetchone())
Результат выполнения кода:
Пример
Давайте вернем сразу несколько столбцов после вставки:
Результат выполнения кода:
Пример
Давайте выполним вставку нескольких строк и получим все возвращенные значения:
Результат выполнения кода:
Смотрите также
-
класс
Insert,
который представляет команду вставки -
метод
values,
который задает значения для вставки -
метод
inline,
который включает inline-режим выполнения вставки -
метод
from_select,
который строит вставку из выборки