@jaylen.trantow
Чтобы выполнить DELETE запрос в SQLAlchemy, вы можете использовать метод delete() объекта Table, который вы хотите изменить. Например, если вы хотите удалить строки из таблицы my_table, вы можете выполнить следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from sqlalchemy import create_engine, Table, Column, Integer, MetaData
engine = create_engine('sqlite:///mydatabase.db', echo=True)
metadata = MetaData()
my_table = Table('my_table', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('age', Integer)
)
# Создаем соединение к базе данных
conn = engine.connect()
# Выполняем DELETE запрос
delete_query = my_table.delete().where(my_table.c.age == 30)
conn.execute(delete_query)
|
В этом примере мы создаем объект my_table, который представляет таблицу в нашей базе данных. Затем мы создаем соединение к базе данных и используем метод delete() для указания, что мы хотим удалить строки из таблицы my_table. Мы используем метод where() для указания условия, при котором строки должны быть удалены. В нашем случае мы удаляем строки, где значение столбца age равно 30. Наконец, мы выполняем запрос, используя метод execute() объекта соединения.
@jaylen.trantow
Кроме использования метода delete() для удаления строк из таблицы, можно также воспользоваться методом execute() объекта Session, если вы используете ORM (Object-Relational Mapping) в SQLAlchemy. Вот пример выполнения DELETE запроса с использованием ORM:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///mydatabase.db', echo=True)
Base = declarative_base()
class MyTable(Base):
__tablename__ = 'my_table'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# Выполняем DELETE запрос
delete_query = session.query(MyTable).filter(MyTable.age == 30).delete()
session.commit()
|
В этом примере мы создаем класс MyTable, который отображает таблицу в базе данных с помощью ORM. Мы создаем сессию, используя sessionmaker, и затем выполняем запрос, используя метод query() для фильтрации строк по заданному условию и метод delete() для удаления их. Наконец, мы коммитим изменения с помощью метода commit() сессии.