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

SQLAlchemy dan bergabung, kami tidak memiliki kunci asing

Anda memiliki dua pilihan. Anda dapat melewati kondisi bergabung di join seperti ini:

j = join(users, comments, onclause=users.c.id == commends.c.user_id)

Jika Anda mendefinisikan ini dalam istilah orm.relationship properti, parameter kata kunci akan menjadi primaryjoin bukannya onclause .

Namun, pendekatan yang saya pilih adalah berbohong . Menginformasikan SQLAlchemy bahwa ada kunci asing, meskipun tidak ada.

comments = Table('comments', metadata,
    Column('id', Integer, primary_key=True),
    Column('user_id', Integer, ForeignKey('users.id')),
    ...
)

SQLAlchemy akan melanjutkan seolah-olah kunci asing sebenarnya ada, meskipun database sebenarnya tidak memilikinya. Tentu saja, Anda mungkin mengalami masalah jika batasan kunci asing yang tersirat dilanggar (comments.user_id ketika tidak ada users.id yang sesuai ), tetapi Anda mungkin akan tetap berada dalam masalah.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih kolom dengan nama kata kunci

  2. CI - tampilkan kesalahan atau kegagalan basis data

  3. Alat sinkronisasi MySQL gratis

  4. urutan abjad mysql

  5. Cara menghapus teks antara 2 karakter menggunakan kueri di MYSQL