Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQLAlchemy DELETE Error yang disebabkan oleh pemuatan lambat DAN versi dinamis dari hubungan yang sama

hubungan Group.users dan Group.users_dynamic mencoba untuk mendamaikan fakta bahwa Grup sedang dihapus bersama dengan kemampuan untuk mengelola User() objek yang mereka rujuk; satu hubungan berhasil sementara yang kedua gagal, karena baris dalam tabel asosiasi telah dihapus. Solusi paling mudah adalah menandai semua kecuali satu dari hubungan yang identik sebagai hanya dapat dilihat:

class Group(Base):
    __tablename__ = 'groups'
    id = Column(Integer, primary_key=True)

    users = relationship('User', secondary=users_groups, lazy='select', backref='groups')
    users_dynamic = relationship('User', viewonly=True, secondary=users_groups, lazy='dynamic')

jika Anda masih ingin agar kedua hubungan menangani beberapa tingkat mutasi, Anda harus melakukannya dengan hati-hati karena SQLAlchemy tidak tahu bagaimana mengoordinasikan perubahan di dua hubungan pada saat yang sama, jadi konflik seperti ini dapat terus berlanjut terjadi (seperti sisipan ganda, dll) jika Anda membuat mutasi yang setara pada kedua hubungan. Untuk mengatasi masalah "hapus" dengan sendirinya, Anda juga dapat mencoba menyetel Group.users_dynamic ke passive_deletes=True:

class Group(Base):
    __tablename__ = 'groups'
    id = Column(Integer, primary_key=True)

    users = relationship('User', secondary=users_groups, lazy='select', backref='groups')
    users_dynamic = relationship('User', passive_deletes=True, secondary=users_groups, lazy='dynamic')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aplikasi Django multi-penyewa:mengubah koneksi basis data per permintaan?

  2. Nama tabel atau panjang nama kolom memengaruhi kinerja?

  3. Beberapa Pembaruan di MySQL

  4. Penyedia ADO.NET dengan nama invarian 'MySql.Data.MySqlClient' tidak terdaftar di file konfigurasi mesin atau aplikasi

  5. Bagaimana cara mengembalikan database mysql di XAMPP?