Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SqlAlchemy không trả về tất cả các hàng khi truy vấn đối tượng bảng, nhưng trả về tất cả các hàng khi tôi truy vấn cột đối tượng bảng

Tôi đã gặp phải tình huống tương tự trong đó .all() của đối tượng truy vấn SQLAlchemy không trả về tất cả các hàng trong bảng (luôn thiếu một số) nhưng .count() cuộc gọi không đưa ra số lượng chính xác. Sau khi tìm hiểu kỹ hơn một chút, tôi nhận ra rằng khai báo mô hình đã lệch khỏi lược đồ bảng thực tế trong cơ sở dữ liệu đó. Đầu tiên, cơ sở dữ liệu có một cột khóa chính duy nhất trong lược đồ nhưng khai báo mô hình có khóa chính thành phần (trong trường hợp ngược lại như của bạn), tôi cũng đã bỏ lỡ một ràng buộc duy nhất 3 cột khi lược đồ bảng có nó.

Điều gì đã xảy ra ở đó trong trường hợp của tôi là bất cứ khi nào SQL Alchemy truy vấn cơ sở dữ liệu, nó đã nhận được tất cả các hàng phía sau hiện trường nhưng do khóa chính thành phần không chính xác trong khai báo mô hình của tôi đã ngăn một số hàng tải vào phiên của SQLAlchemy (các khóa chính theo định nghĩa chỉ xác định duy nhất các đối tượng và kết quả là nó sẽ không tải hai đối tượng có cùng khóa chính trong phiên, do đó nó sẽ đưa ra các cột thành phần có cùng giá trị ngay cả trong cơ sở dữ liệu mà chúng có PK khác nhau.)

Tóm lại, kiểm tra kỹ việc khai báo mô hình với lược đồ cơ sở dữ liệu để đảm bảo chúng được đồng bộ hóa là phản hồi đầu tiên từ loại vấn đề này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để khôi phục sau khi cam kết trong MySQL không?

  2. MYSQL xóa tất cả các kết quả có số lượng (*) =1

  3. Xóa dấu ngoặc kép và dấu phẩy khỏi chuỗi trong MySQL

  4. Lỗi chung bị giết trong tập lệnh PHP

  5. Laravel 5.4 trên PHP 7.0:Ngoại lệ PDO - Không thể tìm thấy trình điều khiển (MySQL)