Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQLAlchemy:Jak usunąć z dołączeniem

Oto sposób, w jaki to zrobiłem:

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)

Kluczem tutaj jest utworzenie podzapytania poprzez znalezienie identyfikatorów, które mają zostać usunięte. Następnie używasz operatora „in_”, aby wybrać rekordy do usunięcia. 'synchoronize_session=False' wykona zapytanie bez aktualizacji sesji. Daje to najlepszy wzrost wydajności.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń ogromne ilości danych z ogromnej tabeli

  2. SERWER SQL — SQL_NO_CACHE i OPTION (RECOMPILE)

  3. Jak sprawić, by kategoria pierwszego poziomu była wyświetlana tylko raz?

  4. PHP-MYSQL:Konwersja uniksowego znacznika czasu na datę i godzinę i na odwrót

  5. Jak bezpiecznie przechowywać hasło użytkownika i sól w MySQL?