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

SqlAlchemy tidak mengembalikan semua baris saat menanyakan objek tabel, tetapi mengembalikan semua baris saat saya menanyakan kolom objek tabel

Saya mengalami situasi serupa di mana objek kueri SQLAlchemy .all() tidak mengembalikan semua baris dalam tabel (selalu melewatkan beberapa) tetapi .count() panggilan memang memberikan hitungan yang benar. Setelah menggali lebih dalam, saya menyadari bahwa deklarasi model menyimpang dari skema tabel aktual di database itu. Pertama, database memiliki satu kolom kunci utama dalam skema tetapi deklarasi model memiliki kunci utama komposisi (dalam kasus terbalik seperti milik Anda), saya juga melewatkan batasan unik 3 kolom di mana skema tabel memilikinya.

Apa yang terjadi di sana dalam kasus saya adalah bahwa setiap kali SQL Alchemy meminta database, ia mendapatkan semua baris di belakang layar tetapi karena kunci utama komposisi yang salah dalam deklarasi model saya telah mencegah beberapa baris memuat ke sesi SQLAlchemy (kunci utama menurut definisi secara unik mengidentifikasi objek dan tidak akan memuat dua objek dengan kunci utama yang sama dalam sesi sebagai hasilnya, oleh karena itu membuang kolom komposisi yang memiliki nilai yang sama bahkan dalam database mereka memiliki PK yang berbeda.)

Sebagai kesimpulan, periksa kembali deklarasi model dengan skema database untuk memastikan mereka sinkron adalah respons pertama dari masalah semacam ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koneksi pdo tanpa nama database?

  2. Ambil tanggal yang hilang dari database melalui MySQL

  3. Temukan kolom tertentu di tabel yang tidak dikenal di database?

  4. SQL SELECT terbalik - Temukan staf yang tidak melakukan panggilan dingin antara rentang tanggal

  5. Permintaan MySQL, 3 tabel, t1-t2 lalu perbarui t3. Bagaimana saya bisa melakukan ini dengan cara yang paling efisien?