Tên bảng của bạn Users
và Companies
cả hai đều bắt đầu bằng một chữ cái viết hoa. PostgreSQL sẽ chuyển đổi tất cả các số nhận dạng thành chữ thường (theo mặc định), như bạn có thể thấy từ thông báo lỗi:
psycopg2.ProgrammingError: relation "users" does not exist
Nơi users
được viết bằng tất cả các chữ thường. Điều này là cần thiết nếu bạn muốn tuân thủ nghiêm ngặt tiêu chuẩn SQL (như PostgreSQL nổi tiếng). Bạn có thể giải quyết vấn đề này theo hai cách:
Giải quyết nó trong cơ sở dữ liệu của bạn:
Tuân thủ quy ước chung và đổi tên bảng của bạn tất cả đều là chữ thường.
Giải quyết nó trong mã của bạn:
Trích dẫn các số nhận dạng của bạn (tên bảng của bạn trong trường hợp này) để PostgreSQL sẽ giữ nguyên chúng:
cur.execute(""" SELECT * from "Users" """)