Атрибут schema класса Table
Атрибут schema класса Table хранит
имя схемы базы данных, к которой относится
таблица. Значение задается параметром
schema при создании таблицы и по умолчанию
равно None, что означает использование
схемы по умолчанию для текущего подключения.
Атрибут доступен только для чтения и возвращает
строку с именем схемы или None.
Синтаксис
table.schema
Пример
Давайте создадим таблицу без указания схемы и посмотрим значение атрибута:
from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
print(articles.schema)
Результат выполнения кода:
"None"
Пример
Давайте создадим таблицу с явным указанием
схемы content и выведем значение атрибута:
from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
schema='content'
)
print(articles.schema)
Результат выполнения кода:
"content"
Пример
Давайте создадим таблицу в схеме content
и посмотрим ее полное имя через атрибут
fullname:
from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
schema='content'
)
print(articles.fullname)
Результат выполнения кода:
"content.articles"
Пример
Давайте создадим таблицу в схеме content
и выполним SQL-запрос создания таблицы:
from sqlalchemy import Table, Column, Integer, String, MetaData, create_engine
from sqlalchemy.schema import CreateTable
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles',
metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
schema='content'
)
print(CreateTable(articles).compile(engine))
Итоговый SQL запрос:
CREATE TABLE content.articles (
id INTEGER NOT NULL,
title VARCHAR,
PRIMARY KEY (id)
)