Table of Contents
Ispirer Website
Ispirer Capabilities - PostgreSQL Migration
Free Trial
PostgreSQL Identifiers
This article describes identifiers in PostgreSQL.
Identifier Rules
PostgreSQL - Identifier Rules | |
---|---|
First Character | An alphabetic character and underscore (_) |
Subsequent Characters | Alphanumeric characters, underscore (_) and dollar sign ($) |
Maximum Length | 63 characters Maximum length is defined by NAMEDATALEN-1, longer names can be used in scripts but they are truncated. By default, NAMEDATALEN is 64 and it can changed in src/include/pg_config_manual.h |
Case Sensitivity | Identifiers (not quoted) are case insensitive |
Standards | ANSI SQL - $ is not allowed |
Identifiers - Differences between PostgreSQL and other Databases
Database | Identifiers | First Character | Subsequent Characters | Max Length |
---|---|---|---|---|
SQL Server | SQL Server Identifiers | Allowed: @ and # | Allowed: @ and # | 128 |
Oracle | Oracle Identifiers | Not allowed: _ | Allowed: # | 30 |
IBM DB2 | IBM DB2 Identifiers | Not allowed: _ | Not allowed: $ | 128 |
MySQL | MySQL Identifiers | Allowed: digit Not allowed: _ | No differences | 64 |
Sybase ASE | Sybase ASE Identifiers | Allowed: @ and # | Allowed: @ and # | 255 |
Sybase ASA | Sybase ASA Identifiers | Allowed: $, @ and # | Allowed: @ and # | 128 |
Informix | Informix Identifiers | No differences | No differences | 128 |
Teradata | Teradata Identifiers | Allowed: $ and # | Allowed: # | 30 |
HP Neoview | HP Neoview Identifiers | Not allowed: _ | Not allowed: $ | 128 |
Interbase/Firebird | Interbase/Firebird Identifiers | Not allowed: _ | No differences | 67 |
Quoted or Delimited Identifiers
PostgreSQL - Quoted Identifier Rules | |
---|---|
Quotation Marks | Double quotation marks (“”) |
Characters | Any character except the character with code zero. 2 double quotes can be used to include a double quote |
Case Sensitivity | Case sensitive |
Notes | Unquoted identifiers are always converted to lower case, so the identifiers ID, id, and “id” are considered the same |
Standards | ANSI SQL - Unquoted identifiers should be converted to upper case |
Quoted Identifiers - Differences between PostgreSQL and other Databases
Database | Identifiers | Quotation Marks | Characters | Case Sensitivity |
---|---|---|---|---|
Oracle | Oracle Quoted Identifiers | “” | Any except quotes | Case sensitive |
SQL Server | SQL Server Quoted Identifiers | [] and “” | Any except quotes | Case insensitive |
IBM DB2 | IBM DB2 Quoted Identifiers | “” | Any including quotes | Case sensitive |
MySQL | MySQL Quoted Identifiers | `` and “” | Any except quotes | Case sensitive |
Sybase ASE | Sybase ASE Quoted Identifiers | [] and “” | Any except pound sign (#) as the first character | Case insensitive |
Sybase ASA | Sybase ASA Quoted Identifiers | [] and “” | Any | Case insensitive |
Informix | Informix Quoted Identifiers | “” | Any including quotes | Case sensitive |
Teradata | Teradata Quoted Identifiers | “” | Any including quotes | Case insensitive |
HP Neoview | HP Neoview Quoted Identifiers | “” | Any except at sign (@), forward slash (/), circumflex character (^) as the first character and space(s) as the last character(s) | Case sensitive |
Interbase/Firebird | Interbase/Firebird Quoted Identifiers | “” | Any character except space(s) as the last character(s) | Case sensitive |