PostgreSQL中的函数名不区分大小写?
答
函数名称为标识符(如表名,字段名称),关于大小写敏感性的全部相同rules。
总之,标识符是不区分大小写,除非另有说明。
更准确地说,一个不加引号的标识符在内部被转换为小写字母,然后尝试一个案例派生匹配。 这可能会让你的生活变得悲惨(即隐藏的bug,浪费小时),通常如果在定义表或函数时使用了带引号的标识符。
这就是为什么你应该永远定义你自己的naming convention并坚持下去。
一般建议:对标识符总是使用小写字母,并且很高兴。
db=# select now();
now
-------------------------------
2011-06-10 16:33:06.588401-03
(1 row)
db=# select Now();
now
-------------------------------
2011-06-10 16:33:08.066818-03
(1 row)
db=# select "now"();
now
-------------------------------
2011-06-10 16:33:14.543381-03
(1 row)
db=# select "Now"();
ERROR: function Now() does not exist
LINE 1: select "Now"();
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
答
PostgreSQL中的标识符和关键字名称不区分大小写。函数名称是标识符。
答
我想你可以得到很多不同的答案这个问题。从技术上讲,PostgreSQL中的函数名称区分大小写。但是,当通过SQL处理函数时,将应用标识符语法规则,即将未加引号的标识符折叠为小写。这可能会给大小写不敏感的函数名称造成错觉,但它只是SQL语言的特性。例如,将此与过程语言的名称进行对比,即使您双引号标识符,过程语言也不区分大小写。
它应该没关系。试试看看! ;) – FrustratedWithFormsDesigner 2011-06-10 19:26:42
它应该没关系,但它可能很重要。 – leonbloy 2011-06-10 23:56:30