Метод copy класса Column
Метод copy класса Column создает
поверхностную копию объекта колонки. Метод
принимает произвольные именованные аргументы,
которые позволяют переопределить атрибуты
копируемой колонки. Это удобно, когда нужно
создать новую колонку на основе уже
существующей, изменив лишь некоторые
ее параметры.
Синтаксис
column.copy(**kwargs)
Пример
Давайте создадим колонку и получим ее копию без изменения параметров:
from sqlalchemy import Column, Integer, String
col = Column('title', String(50))
col_copy = col.copy()
print(col is col_copy)
print(col_copy.name)
print(col_copy.type)
Результат выполнения кода:
False
title
VARCHAR(50)
Пример
Давайте скопируем колонку, переопределив ее имя и тип через именованные аргументы:
from sqlalchemy import Column, Integer, String
col = Column('title', String(50))
col_copy = col.copy(name='text', type_=String(200))
print(col.name, col.type)
print(col_copy.name, col_copy.type)
Результат выполнения кода:
title VARCHAR(50)
text VARCHAR(200)
Пример
Давайте создадим таблицу, в которой одна из колонок получена копированием другой с изменением имени:
from sqlalchemy import Column, Integer, String, MetaData, Table
metadata = MetaData()
original = Column('title', String(50))
duplicate = original.copy(name='text')
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
original,
duplicate,
)
for column in articles.columns:
print(column.name, column.type)
Результат выполнения кода:
id INTEGER
title VARCHAR(50)
text VARCHAR(50)