关于PostgreSQL数据库的大小写
在创建数据库对象时,很多人喜欢用驼峰命名法。但PostgreSQL数据库对于大小写的处理规则比较特殊.简要总结如下:1.PG数据库是严格区分大小写的.2.默认情况下,PG数据库会把所有的SQL语句都转化成小写然后再执行.说明:加双引号的语句除外.换句话说,如果想成功执行名称中带有大写字母的对象,则需要把对象名称加上双引号.验证如下:数据库中有两个表,分别用全小写命名法(表名:ods.my_tabl
在创建数据库对象时,很多人喜欢用驼峰命名法。
但PostgreSQL数据库对于大小写的处理规则比较特殊.
简要总结如下:
1.PG数据库是严格区分大小写的.
2.默认情况下,PG数据库会把所有的SQL语句都转化成小写然后再执行.
说明:加双引号的语句除外.
换句话说,如果想成功执行名称中带有大写字母的对象,则需要把对象名称加上双引号.
验证如下:
数据库中有两个表,分别用全小写命名法(表名:ods.my_table)和驼峰命名法(表名:ods.“MyTable”)创建.
以下两个查询my_table表的SQL都可以正常执行:
select * from ods.my_table;
select * from ods.MY_TABLE–运行时表名会被转化成小写
但是以下执行查询MyTable表的SQL时,报错如下:
select * from ods.MyTable
通过提示可以看出,数据库将表名转化成了ods.mytable,故查询对象不存在.
修改如下,表名加上双引号时,则可以正常执行:
SELECT * from ods.“MyTable”
同样地,通过脚本创建数据库对象时,如果脚本中的对象名称没有加上双引号,则创建之后的对象名称全部会被转化成小写.
但是通过pgAdmin这些可视化管理工具创建数据库对象时,对象名称又不会被转换成小写.
所以为了减少在PG数据库中大小写规则带来的不便,还是建议大家所有的数据库对象都用小写吧.
更多推荐
所有评论(0)