@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() сессии.