sql >> Databáze >  >> RDS >> Mysql

SQLAlchemy:Jak odstranit pomocí spojení

Zde je způsob, jak jsem to udělal:

map_ids = session.query(Table1.map_id). \
    filter(Table1.xxxx == 'xxx_value')

q = session.query(Table2). \
    filter(Table2.map_id.in_(map_ids.subquery()))

q.delete(synchronize_session=False)

Klíčem je zde vytvořit poddotaz nalezením ID, které je třeba odstranit. Poté pomocí operátoru 'in_' vyberete záznamy, které mají být smazány. 'synchoronize_session=False' provede dotaz bez aktualizace relace. To poskytuje nejlepší zvýšení výkonu.



  1. Database-Aware Load Balancing:Jak migrovat z HAProxy na ProxySQL

  2. Jako cizí klíč použijte složený primární klíč

  3. Použití Barmana pro zotavení po havárii PostgreSQL

  4. jaký je rozdíl mezi '!=' a '<>' v mysql