Метод remove класса MetaData
Метод remove класса MetaData удаляет
объект Table из коллекции метаданных.
Первым параметром метод принимает таблицу,
которую нужно удалить. Вторым необязательным
параметром передается схема. Если схема не
указана, используется схема по умолчанию.
Метод не удаляет саму таблицу из базы данных,
а лишь убирает ее описание из объекта метаданных.
Синтаксис
MetaData.remove(table, [schema])
Пример
Давайте создадим метаданные с одной таблицей
и удалим ее методом remove:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
print(metadata.tables.keys())
metadata.remove(articles)
print(metadata.tables.keys())
Результат выполнения кода:
"dict_keys(['articles'])"
"dict_keys([])"
Пример
Давайте удалим таблицу и убедимся, что обращение к ней через метаданные больше не находит ее:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
metadata.remove(articles)
try:
metadata.tables['articles']
except KeyError as e:
print('KeyError:', e)
Результат выполнения кода:
"KeyError: 'articles'"
Пример
Давайте создадим две таблицы и удалим только одну из них:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
users = Table(
'users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String)
)
print(sorted(metadata.tables.keys()))
metadata.remove(users)
print(sorted(metadata.tables.keys()))
Результат выполнения кода:
"['articles', 'users']"
"['articles']"
Пример
Давайте удалим таблицу по имени, получив ее из коллекции метаданных:
from sqlalchemy import MetaData, Table, Column, Integer, String
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String)
)
table = metadata.tables['articles']
metadata.remove(table)
print(len(metadata.tables))
Результат выполнения кода:
"0"
Смотрите также
-
класс
MetaData,
который хранит коллекцию таблиц и схем -
метод
clear,
который удаляет все таблицы из метаданных -
атрибут
tables,
который хранит словарь всех таблиц -
метод
create_all,
который создает все таблицы в базе данных