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

Can column name be "Group" in PostgreSQL or in any databases

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

Problem

I was designing a project which specifies that in a table what column name should be and one of the column name in the specification is "group".

I tried creating it but it always throw a syntax error near the word = "group". I am really curious since the keyword in SQL is "group by" not group, so what is the reason, I cannot rename or create a column with a name "group".

Syntax and error I am using and getting:
ALTER TABLE test RENAME COLUMN sum TO group;
ERROR: syntax error at or near "group"
LINE 1: ALTER TABLE test RENAME COLUMN sum TO group;

Solution

group is a reserved word (and by is another reserved word) - it's not GROUP BY that is reserved. Because it is a reserved word, it cannot be used directly as an identifier.

To use a reserved word or a name with "illegal" characters (such as a space) for an identifier, you need to quote the identifier.

ALTER TABLE test RENAME COLUMN sum TO "group";


Note that when using quoted identifiers, you need to always quote it. And it becomes case sensitive. "group" is a different column name than "GROUP".

For more details please see the manual.

In general it is a very bad idea to use names that require quoting. It will save you a lot of trouble if you can come up with a different name that does not require quoting.

Code Snippets

ALTER TABLE test RENAME COLUMN sum TO "group";

Context

StackExchange Database Administrators Q#52273, answer score: 15

Revisions (0)

No revisions yet.