PostgreSQL中的函数名是否不区分大小写?

PostgreSQL中的函数名是否不区分大小写?,postgresql,Postgresql,在PostgreSQL中定义或调用函数时,大小写是否重要 PostgreSQL中的标识符和关键字名称不区分大小写。函数名是标识符。函数名是标识符(如表名、字段名),区分大小写同样适用于所有 简言之,标识符是可用的 更准确地说,未加引号的标识符在内部转换为小写,然后尝试区分大小写的匹配。 如果在定义表或函数时使用带引号的标识符,这会使您的生活变得悲惨(即隐藏的bug、浪费的时间) 这就是为什么你应该始终定义自己并坚持下去 一般建议:标识符始终使用小写,并且要高兴 db=# select now()

在PostgreSQL中定义或调用函数时,大小写是否重要

PostgreSQL中的标识符和关键字名称不区分大小写。函数名是标识符。

函数名是标识符(如表名、字段名),区分大小写同样适用于所有

简言之,标识符是可用的

更准确地说,未加引号的标识符在内部转换为小写,然后尝试区分大小写的匹配。 如果在定义表或函数时使用带引号的标识符,这会使您的生活变得悲惨(即隐藏的bug、浪费的时间)

这就是为什么你应该始终定义自己并坚持下去

一般建议:标识符始终使用小写,并且要高兴

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中的函数名区分大小写。但当您通过SQL对函数进行寻址时,标识符语法规则适用,即未加引号的标识符被折叠成小写。这可能会产生不区分大小写的函数名的错觉,但这只是SQL语言的特性。例如,将此与过程语言的名称进行对比,过程语言的名称不区分大小写,即使您双引号引用标识符。

这不重要。试试看!;)答案不错,但当你写小写字母时,我不得不停下来想一分钟。