七月 28, 2023
对于 Oracle 和 PostgreSQL,对象名称区分大小写的行为是不同的。Oracle 名称默认以大写形式存储,不区分大小写。PostgreSQL 名称默认以小写形式存储,区分大小写。
默认情况下,PostgreSQL 会自动使用小写的对象名称。在大多数情况下,在将原来 Oracle 的对象转换到 PostgreSQL 时,模式、表和列名称存储形式会变更为小写。
若要以大写形式存储对象名称,必须将对象名称放在双引号内。
例如,要在 PostgreSQL 中创建一个名为EMPLOYEES
(大写)的表,您应该使用以下形式的语句:
CREATE TABLE "EMPLOYEES" (
EMP_ID NUMERIC PRIMARY KEY,
EMP_FULL_NAME VARCHAR(60) NOT NULL,
AVG_SALARY NUMERIC NOT NULL);
以下命令会创建一个名为 employees(小写)的表。
CREATE TABLE EMPLOYEES (
EMP_ID NUMERIC PRIMARY KEY,
EMP_FULL_NAME VARCHAR(60) NOT NULL,
AVG_SALARY NUMERIC NOT NULL);
如果不使用双引号,PostgreSQL 会以小写形式查找对象名称。对于不使用双引号的CREATE
命令,PostgreSQL 会创建具有小写名称的对象。因此,若要创建、查询或操作大写形式(或混合形式)的对象名称,请使用双引号。