python - one - Cómo eliminar un registro por id en Flask-SQLAlchemy
model sqlalchemy (3)
Otra posible solución, especialmente si desea eliminar por lotes
deleted_objects = User.__table__.delete().where(User.id.in_([1, 2, 3])) session.execute(deleted_objects) session.commit()
Tengo una tabla de
users
en mi base de datos MySql.
Esta tabla tiene campos de
id
,
name
y
age
.
¿Cómo puedo eliminar algún registro por
id
?
Ahora uso el siguiente código:
user = User.query.get(id)
db.session.delete(user)
db.session.commit()
Pero no quiero hacer ninguna consulta antes de eliminar la operación.
¿Hay alguna forma de hacer esto?
Lo sé, puedo usar
db.engine.execute("delete from users where id=...")
, pero me gustaría usar el método
delete()
.
Puedes hacerlo,
# mark two objects to be deleted
session.delete(obj1)
session.delete(obj2)
# commit (or flush)
session.commit()
o
obj = User.query.filter_by(id=123).one()
session.delete(obj)
session.commit()
Asegúrese de
commit
que
delete()
surta efecto.
Solo quiero compartir otra opción:
deleted_objects = User.__table__.delete().where(User.id.in_([1, 2, 3]))
session.execute(deleted_objects)
session.commit()
http://docs.sqlalchemy.org/en/latest/orm/session_basics.html#deleting
En este ejemplo, los siguientes códigos funcionarán bien:
obj = User.query.filter_by(id=123).one() session.delete(obj) session.commit()