HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

What is the purpose of the keyword "ID" in PostgreSQL?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
postgresqlthewhatkeywordpurpose

Problem

I'm new to PostgreSQL and I ran into problems using the following query:

SELECT * FROM table1 WHERE ID = 1



ERROR: column "id" does not exist
LINE 2: WHERE ID = 1

where ID is a column I added via a GUI-tool.

I then found out that ID is a keyword in my current version of PSQL and should be quoted. But I can't recognize what is this ID for.

On the linked page there is the following notice:


It is important to understand before studying Table C-1 that the fact that a key word is not reserved in PostgreSQL (==true) does not mean that the feature related to the word is not implemented.

So, ID is not marked as a PostgreSQL keyword and there seems to be a feature connected to it, but I can't find out which. SELECT ID itself turns into the same error message as posted above.

Solution

In PostgreSQL, inserting a column named

"ID"


is one thing. Inserting a column named

ID


is another.

create table test (
  "ID" integer not null
);

insert into test values (1);

select *
from test
where ID = 1;

ERROR: column "id" does not exist



Quoting an identifier also makes it case-sensitive, whereas unquoted
names are always folded to lower case.

Code Snippets

create table test (
  "ID" integer not null
);

insert into test values (1);

select *
from test
where ID = 1;

ERROR: column "id" does not exist

Context

StackExchange Database Administrators Q#24138, answer score: 6

Revisions (0)

No revisions yet.