社区
MySQL
帖子详情
怎样设置PostgreSQL中字段和表名对大小写敏感?
PolarStorm
2009-08-22 09:32:08
PostgreSQL中字段默认小写,可否设为大小写敏感?
...全文
1174
3
打赏
收藏
怎样设置PostgreSQL中字段和表名对大小写敏感?
PostgreSQL中字段默认小写,可否设为大小写敏感?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vinsonshen
2009-08-22
打赏
举报
回复
由于 PostgreSQL 是大小写敏感的,并默认对SQL语句中的数据库对象名称转换为小写,因此如果你在创建数据库对象时指定了大小写混和的对象名称,那么在通过SQL语句访问 这些对象时,必须使用双引号(")将数据库对象括起来,以提示 PostgreSQL 不用帮你转换对象名为小写,否则将激发“xxxxx对象不存在”的异常,譬如您的数据库中有名为 TUser 的表,您在 PostgreSQL 自带的图形化查询工具中必须使用类似这样的查询语句才能正确执行:SELECT * FROM "TUser",当然它对 SQL 标准中的保留字和关键字是不区分大小写的,所以写成 select * From "TUser" 这样也是完全可以的。
另外,PostgreSQL 对数据也是大小写敏感的,这点与 SQLServer 不同(SQLServer 默认是不敏感的),譬如在 TUser 表中有字段 Name,其中有一行 Name 字段值为“Tony Tang”的记录,如果直接使用
SELECT * FROM "TUser" WHERE "Name" LIKE '%tony%';
是查询不到这条记录的,不过你可以这么写:
SELECT * FROM "TUser" WHERE UPPER("Name") LIKE '%TONY%';
呵呵,是不是觉得这样不太好看,而且担心性能会受影响?幸好 PostgreSQL 提供了关键字 ILIKE 来帮我们解决这个问题,这真是个非常有趣的关键字(I like),对于第一种写法只需要将 LIKE 替换成 ILIKE 就可以了。
最后,建议在编写 SQL 脚本的时候,使用单引号做字符串常量的标识,虽然在 MS SQLServer 中双引号和单引号均可作为字符串常量的标识符,但是在 PostgreSQL 中对此就有严格的功能区分(不能用双引号作为字符串常量的标识符),为了保险起见,建议对所有的数据库对象名均使用双引号(")将其显式约定,以保证大小 写的严格匹配。
PolarStorm
2009-08-22
打赏
举报
回复
试过了,果然有用,再问一下,这是为什么呢?
trainee
2009-08-22
打赏
举报
回复
加双引号
MySql下实现查询
表名
不区分
大小写
Mysql查询操作 MySql下实现查询
表名
不区分
大小写
mysql
表名
忽略
大小写
配置方法详解
下面小编就为大家带来一篇mysql
表名
忽略
大小写
配置方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
PostgreSQL
大小写
敏感
的那些事
PostgreSQL
和Oracle一样,默认都是
大小写
不
敏感
的,但两者仍然存在区别: **Oracle:**默认是
大小写
不
敏感
,
表名
、
字段
名等不区分
大小写
,小写字母会自动转换为大写字母; 需要用小写字母时需要使用双引号,或借助函數upper()和lower();
PostgreSQL
:默认是
大小写
不
敏感
,
表名
、
字段
名等不区分
大小写
,大写字母会自动转换为小写字母; 需要用大写字母时需要使用双引号,或借助函數upper()和lower(); 1、表、列名
中
的
大小写
敏感
例如我们创建表test,
表名
写成tes
PostgreSQL
大小写
敏感
PostgreSQL
大小写
敏感
PG
中
默认是
大小写
不
敏感
,
表名
、
字段
名等不区分
大小写
,大写字母会自动转换为小写字母,需要使用大写字母时需要使用双引号,或借助函数。 1、
表名
、列名
中
的
大小写
敏感
我们创建的表test,
表名
写成test、Test、TEST都是一样的。 create table test(id int); \d test create table test(ID int); select id from test; 如果要指定
表名
或者列名为大写该怎么办? 只要加上双引号即可。 但是这种方法很麻
PostgreSQL
字段
名和
表名
大小写
的问题
创建表的时候,
表名
和
字段
名必须全小写,然后查询的时候不管全大写或全小写,或是Camel模式都不会报错。只要名称
中
有大写字母,或者全大写,查询时就必须保证
大小写
正确并用双引号包起来,否则就会报“XXX不存在”的错误:“... does not exist” 视图、存储过程、索引、外键、触发器之类的命名未测试,不过感觉应该适用于所有对象。 PS. 这样处理之后,在EntityFramework
中
的...
MySQL
56,681
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章