Обсуждение: Table names in upper case
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/9.6/static/sql-syntax-lexical.html Description: Although this documentation says that "Key words and unquoted identifiers are case insensitive." it is not possible to use table or column names in upper case. If the table or column name was in upper case it is necessary use quotes to Postgres accept. Exactly the opposite case showed at documentation. For example: CREATE TABLE CLIENT(ID INTEGER, NAME TEXT); SELECT * FROM CLIENT; -- an error will be launched SELECT * FROM "CLIENT"; -- works But: CREATE TABLE client(id INTEGER, name TEXT); SELECT * FROM CLIENT; -- works It is, at least, strange. Cheers.
On Wed, Oct 12, 2016 at 7:12 PM, <tosites@me.com> wrote:
Are you sure about the CREATE TABLE statement you used? Which version and OS?
Because this is what I get, which matches exactly the documented behaviour (9.5.4, Ubuntu):
x=# CREATE TABLE CLIENT(ID INTEGER, NAME TEXT);
CREATE TABLE
x=# select * from client ;
id | name
----+------
(0 rows)
x=# select * from "CLIENT" ;
ERROR: relation "CLIENT" does not exist
LINE 1: select * from "CLIENT" ;
^
x=#
The following documentation comment has been logged on the website:
Page: https://www.postgresql.org/docs/9.6/static/sql-syntax- lexical.html
Description:
Although this documentation says that "Key words and unquoted identifiers
are case insensitive." it is not possible to use table or column names in
upper case.
If the table or column name was in upper case it is necessary use quotes to
Postgres accept. Exactly the opposite case showed at documentation.
For example:
CREATE TABLE CLIENT(ID INTEGER, NAME TEXT);
SELECT * FROM CLIENT; -- an error will be launched
SELECT * FROM "CLIENT"; -- works
Are you sure about the CREATE TABLE statement you used? Which version and OS?
Because this is what I get, which matches exactly the documented behaviour (9.5.4, Ubuntu):
x=# CREATE TABLE CLIENT(ID INTEGER, NAME TEXT);
CREATE TABLE
x=# select * from client ;
id | name
----+------
(0 rows)
x=# select * from "CLIENT" ;
ERROR: relation "CLIENT" does not exist
LINE 1: select * from "CLIENT" ;
^
x=#
Pantelis Theodosiou