Метод append_column
Метод append_column класса Table добавляет
новую колонку Column к объекту таблицы.
Первым параметром метод принимает объект колонки.
Метод возвращает объект Table, к которому
была добавлена колонка. Обычно метод используется
при динамическом построении таблиц, когда структура
таблицы формируется программно во время выполнения.
Синтаксис
table.append_column(column)
Пример
Давайте создадим пустую таблицу и добавим в нее
колонку с помощью метода append_column:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table('articles', metadata)
articles.append_column(Column('id', Integer, primary_key=True))
articles.append_column(Column('title', String))
print(articles.columns.keys())
Результат выполнения кода:
['id', 'title']
Пример
Метод возвращает саму таблицу, поэтому вызовы можно объединять в цепочку:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table('articles', metadata)
articles.append_column(
Column('id', Integer, primary_key=True)
).append_column(
Column('title', String)
).append_column(
Column('text', String)
)
for column in articles.columns:
print(column.name, column.type)
Результат выполнения кода:
id INTEGER
title VARCHAR
text VARCHAR
Пример
Давайте создадим таблицу в базе данных с колонками,
добавленными через append_column, и выполним
SQL-запрос:
from sqlalchemy import MetaData, Table, Column, Integer, String
from sqlalchemy import create_engine, insert, select
metadata = MetaData()
articles = Table('articles', metadata)
articles.append_column(Column('id', Integer, primary_key=True))
articles.append_column(Column('title', String))
articles.append_column(Column('status', String))
engine = create_engine('sqlite:///:memory:')
metadata.create_all(engine)
with engine.connect() as conn:
conn.execute(insert(articles).values(title='article', status='draft'))
res = conn.execute(select(articles)).fetchall()
print(res)
Итоговый SQL запрос:
SELECT articles.id, articles.title, articles.status FROM articles
Смотрите также
-
класс
Table,
который представляет таблицу базы данных -
метод
append_constraint,
который добавляет ограничение к таблице -
атрибут
columns,
который хранит коллекцию колонок таблицы -
метод
create,
который создает таблицу в базе данных