Класс DropTable
Класс DropTable представляет SQL-конструкцию
DROP TABLE, которая удаляет таблицу
из базы данных. Первым параметром класс принимает
имя таблицы или объект таблицы. Конструкция
может быть выполнена через соединение с базой
или через метод drop объекта таблицы.
При удалении таблицы все ее данные безвозвратно
теряются, поэтому использовать класс следует
с осторожностью. Если таблица не существует,
СУБД может выдать ошибку, если не указан
флаг if_exists.
Синтаксис
DropTable(table_name, [if_exists])
Пример
Давайте создадим таблицу и сразу удалим ее
через конструкцию DropTable:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy.schema import CreateTable, DropTable
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
with engine.connect() as conn:
conn.execute(CreateTable(articles))
print("Table created")
conn.execute(DropTable(articles))
print("Table dropped")
Результат выполнения кода:
"Table created"
"Table dropped"
Пример
Давайте удалим таблицу по имени, используя
параметр if_exists для безопасного удаления:
from sqlalchemy import create_engine
from sqlalchemy.schema import DropTable
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(DropTable('articles', if_exists=True))
print("Drop executed safely")
Результат выполнения кода:
"Drop executed safely"
Пример
Давайте посмотрим, какой SQL-запрос генерирует
конструкция DropTable:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer
from sqlalchemy.schema import DropTable
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True)
)
stmt = DropTable(articles)
print(stmt)
Результат выполнения кода:
"DROP TABLE articles"
Смотрите также
-
класс
CreateTable,
который создает таблицу в базе данных -
класс
Constraint,
который представляет базовое ограничение таблицы -
класс
PrimaryKeyConstraint,
который задает первичный ключ таблицы -
класс
ForeignKeyConstraint,
который задает внешний ключ таблицы