đặt tên bảng vào dấu ngoặc kép nếu bạn muốn postgres giữ nguyên chữ hoa cho các tên quan hệ.
Trích dẫn một số nhận dạng cũng làm cho nó phân biệt chữ hoa chữ thường, trong khi các tên chưa được trích dẫn luôn được xếp thành chữ thường . Ví dụ:các mã định danhFOO, foo và "foo" được PostgreSQL coi là giống nhau, nhưng "Foo" và "FOO" khác với ba mã này và lẫn nhau. (Việc gấp các tên chưa được trích dẫn thành chữ thường trong PostgreSQL không tương thích với tiêu chuẩnSQL, điều này nói rằng các tên chưa được trích dẫn phải được xếp thành chữ hoa. Do đó, foo phải tương đương với "FOO" chứ không phải "foo" theo tiêu chuẩn. Nếu bạn muốn viết các ứng dụng di động mà bạn được hỗ trợ luôn trích dẫn một tên cụ thể hoặc không bao giờ trích dẫn nó .)
từ tài liệu (tôi nhấn mạnh)
ví dụ với trích dẫn:
t=# create table "UC_TNAME" (i int);
CREATE TABLE
t=# \dt+ UC
t=# \dt+ "UC_TNAME"
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------+-------+----------+---------+-------------
public | UC_TNAME | table | postgres | 0 bytes |
(1 row)
ví dụ mà không cần trích dẫn:
t=# create table UC_TNAME (i int);
CREATE TABLE
t=# \dt+ UC_TNAME
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------+-------+----------+---------+-------------
public | uc_tname | table | postgres | 0 bytes |
(1 row)
Vì vậy, nếu bạn đã tạo bảng với dấu ngoặc kép, bạn không nên bỏ qua dấu ngoặc kép khi truy vấn nó. Nhưng nếu bạn bỏ qua dấu ngoặc kép khi tạo đối tượng, tên sẽ được chuyển thành chữ thường và do đó sẽ có tên chữ hoa trong truy vấn - theo cách này, bạn sẽ "không nhận thấy" nó.