Как удалить все ряды, соответствующие условию с использованием sqlmodelPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как удалить все ряды, соответствующие условию с использованием sqlmodel

Сообщение Anonymous »

The documentation of SqlModel about DELETE action: https://sqlmodel.tiangolo.com/tutorial/delete/
shows how to delete a single line using the functions
  • .one() - If only a single record is expected
или < /p>

.first () - чтобы получить 1 -ю строку из нескольких строк. < /li>
< /ul>

Код: Выделить всё

def delete_heroes():
with Session(engine) as session:
statement = select(Hero).where(Hero.name == "Spider-Youngster")
results = session.exec(statement)
hero = results.one()
print("Hero: ", hero)

session.delete(hero)
session.commit()
< /code>
Но как я могу удалить все строки, соответствующие условию? Я попытался использовать функцию .all () < /p>
def delete_heroes():
with Session(engine) as session:
statement = select(Hero).where(Hero.name == "Spider-Youngster")
results = session.exec(statement)
hero = results.all()
print("Hero: ", hero)

session.delete(hero)
session.commit()
< /code>
Но все, что я получаю, это ошибка:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.list' is not mapped< /code> < /p>

Мое решение использует цикл для итерации по нескольким линиям, удаляйте каждую строку и совершайте в конце. < /p>
def delete_heroes():
with Session(engine) as session:
statement = select(Hero).where(Hero.name == "Spider-Youngster")
results = session.exec(statement)
hero = results.all()
print("Hero: ", hero)

for result in results:
session.delete(result)

session.commit()
есть ли способ сделать это без цикла?

Подробнее здесь: https://stackoverflow.com/questions/766 ... g-sqlmodel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»