select
psat.schemaname,
psat.relname,
pa.attname,
psat.relid
from
pg_catalog.pg_stat_all_tables psat,
pg_catalog.pg_attribute pa
where
psat.relid = pa.attrelid
更改架构名称:
ALTER SCHEMA "XXXXX" RENAME TO xxxxx;
更改表名称:
ALTER TABLE xxxxx."AAAAA" RENAME TO aaaaa;
更改列名:
ALTER TABLE xxxxx.aaaaa RENAME COLUMN "CCCCC" TO ccccc;
4条答案
按热度按时间anauzrmj1#
在PostgreSQL中,非双引号的标识**(包括列名)会折叠成小写。使用双引号创建并因此保留大写字母(和/或其他语法违规)的列名在其余生中必须使用双引号:
值(字符串型/常量)用单引号引起来:
因此,YES,PostgreSQL列名区分大小写(双引号时):
在这里阅读有关识别符的手册。
我的长期建议是,只使用合法的小写名称,这样就不需要双引号了。
093gszye2#
引用文档:
关键字和无引号的标识符不区分大小写。因此:
可以等效地写成:
您也可以使用带引号的标识符来编写它:
引用标识符使其区分大小写,而未引用的名称始终折叠为小写(不同于SQL标准,未引用的名称折叠为大写)。例如,PostgreSQL认为标识符
FOO
、foo
和"foo"
是相同的,但"Foo"
和"FOO"
是不同的。如果您想要编写可移植的应用程序,建议您始终引用某个特定的名称,或者永远不要引用它。
g2ieeal73#
在PostgreSQL中,大小写混合或大写的列名必须用双引号引起来。因此,最好的惯例是在所有小写字母后面加下划线。
0sgqnhkj4#
如果使用JPA,我建议您更改为小写模式、表和列名,您可以使用下面的说明来帮助您:
更改架构名称:
更改表名称:
更改列名: