РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
247 of 711 menu

Метод values класса Insert

Метод values класса Insert задает значения столбцов для вставляемой строки. Первым параметром метод принимает именованные аргументы, где ключом выступает имя столбца, а значением - вставляемые данные. Метод возвращает новый объект Insert с добавленными значениями, поэтому его можно вызывать цепочкой для накопления данных.

Синтаксис

insert(table).values(**values)

Пример

Давайте создадим таблицу articles и вставим одну строку методом values:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, insert engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) metadata.create_all(engine) stmt = insert(articles).values( title='article', text='some text', status='draft', num=1, ) print(stmt)

Результат выполнения кода:

"INSERT INTO articles (title, text, status, num) VALUES (:title, :text, :status, :num)"

Пример

Давайте выполним вставку и проверим добавленную строку:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, insert, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) metadata.create_all(engine) with engine.connect() as conn: stmt = insert(articles).values( title='article', text='some text', status='draft', num=1, ) conn.execute(stmt) conn.commit() res = conn.execute(select(articles)) print(res.fetchall())

Результат выполнения кода:

[(1, 'article', 'some text', 'draft', 1)]

Пример

Давайте вставим несколько строк, передав в values список словарей:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, insert, select engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer), ) metadata.create_all(engine) with engine.connect() as conn: stmt = insert(articles).values([ {'title': 'article', 'text': 'first', 'status': 'draft', 'num': 1}, {'title': 'user', 'text': 'second', 'status': 'published', 'num': 2}, {'title': 'article', 'text': 'third', 'status': 'archived', 'num': 3}, ]) conn.execute(stmt) conn.commit() res = conn.execute(select(articles)) print(res.fetchall())

Результат выполнения кода:

[(1, 'article', 'first', 'draft', 1), (2, 'user', 'second', 'published', 2), (3, 'article', 'third', 'archived', 3)]

Смотрите также

  • класс Insert,
    который представляет SQL-выражение INSERT
  • метод returning,
    который возвращает вставленные значения
  • метод from_select,
    который вставляет данные из SELECT-запроса
  • метод prefix_with,
    который добавляет префикс к SQL-выражению
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить