Postgres: Mối quan hệ không tồn tại lỗi


14

Tôi đã sử dụng pg_restore để tải db postgres của mình bằng tệp kết xuất. Tôi đã kết nối với db của mình với người dùng của mình:

sudo -u arajguru psql dump

select current_user;
 current_user 
--------------
 arajguru

Bây giờ tôi đã có thể thấy tất cả các bảng mới được tạo:

dump=> \dt
               List of relations
 Schema |       Name        | Type  |  Owner   
--------+-------------------+-------+----------
 public | Approvals         | table | arajguru
 public | Approvers         | table | arajguru
 public | Conditions        | table | arajguru
 public | Entities          | table | arajguru
 public | EntityDefinitions | table | arajguru
 public | Projects          | table | arajguru
 public | Rules             | table | arajguru
 public | run_history       | table | arajguru
(8 rows)

Nhưng khi tôi cố gắng thực hiện một truy vấn chọn *, nó đã báo lỗi cho tôi:

dump=> select * from Approvals;
ERROR:  relation "approvals" does not exist
LINE 1: select * from Approvals;

Điều gì có thể là lý do cho lỗi này? Xin vui lòng giúp đỡ.

Câu trả lời:


23

Bạn đã tạo các bảng của mình với dấu ngoặc kép và bây giờ tên có phân biệt chữ hoa chữ thường.

Như tài liệu trong hướng dẫn "Approvals"Approvalslà hai tên khác nhau.

Bây giờ bạn đã tạo các tên bảng theo cách phân biệt chữ hoa chữ thường, bạn phải luôn luôn sử dụng các dấu ngoặc kép đáng sợ đó.

select * 
from "Approvals";

Như một lời khuyên chung: không bao giờ sử dụng dấu ngoặc kép trong SQL.


1
Cảm ơn! Đang làm việc. Làm thế nào bạn biết rằng các bảng được tạo ra với dấu ngoặc kép?
Ayushi Rajguru

1
@AyushiRajguru: vì "Danh sách các bảng" hiển thị chúng với Chữ hoa / chữ thường. Cách duy nhất để đạt được điều đó là sử dụng dấu ngoặc kép (như được ghi trong tài liệu hướng dẫn )
a_horse_with_no_name

à, tôi đã có cùng một bản ghi với "nhật ký" cảm ơn bạnuuuu <3
csomakk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.