2013-03-06 24 views
13

Đây là trạng thái hiện tại của tôi.Tại sao psql không thể tìm thấy tên quan hệ cho bảng hiện có?

Eonil=# \d+ 
         List of relations 
Schema | Name | Type | Owner | Size | Description 
--------+------------+-------+-------+------------+------------- 
public | TestTable1 | table | Eonil | 8192 bytes | 
(1 row) 

Eonil=# \d+ TestTable1 
Did not find any relation named "TestTable1". 
Eonil=# 

Sự cố và làm cách nào tôi có thể xem định nghĩa bảng?

Trả lời

20

Postgres psql cần thoát cho chữ in hoa.

Eonil=# \d+ "TestTable1" 

Vì vậy, tính năng này hoạt động tốt.

Eonil=# \d+ "TestTable1" 
        Table "public.TestTable1" 
Column |  Type  | Modifiers | Storage | Description 
--------+------------------+-----------+----------+------------- 
ID  | bigint   | not null | plain | 
name | text    |   | extended | 
price | double precision |   | plain | 
Indexes: 
    "TestTable1_pkey" PRIMARY KEY, btree ("ID") 
    "TestTable1_name_key" UNIQUE CONSTRAINT, btree (name) 
Has OIDs: no 

Eonil=# 
+5

Số nhận dạng không được kiểm định (chẳng hạn như tên bảng và cột) được xếp vào trường hợp thấp hơn trong PostgreSQL, lưu ý rằng tiêu chuẩn chỉ định rằng chúng phải được nâng lên để PostgreSQL không chuẩn ở đây. Nếu bạn cần số nhận dạng của bạn trong một trường hợp cụ thể hoặc nếu chúng chứa khoảng trắng thì bạn ** phải ** ngoặc kép chúng ** ở mọi nơi **. Thực hành được khuyến nghị là sử dụng số nhận dạng chữ thường với các từ được phân tách bằng dấu gạch dưới trong PostgreSQL, theo cách đó bạn không phải quan tâm đến các vấn đề về trích dẫn hoặc sự cố. –

+0

Cảm ơn bạn đã giải thích. Dù sao, với tư cách là một lập trình ứng dụng - không phải là một DBA chuyên nghiệp - tôi thích hành vi rõ ràng này và nó thậm chí còn tốt hơn nếu nó phát ra lỗi trên các loại khác biệt nhỏ này. – Eonil

Các vấn đề liên quan