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

dan*_*dan 6 postgresql

在PostgreSQL中定义或调用函数时,情况是否重要?

leo*_*loy 14

函数名称是标识符(如表名,字段名),关于case sensitivy 的相同规则适用于所有.

简而言之,标识符不区分大小写,除非引用.

更确切地说,不带引号的标识符在内部转换为小写,然后尝试进行大小写的匹配.这可能会让您的生活变得悲惨(即隐藏的错误,浪费时间),通常是在定义表或函数时使用带引号的标识符.

这就是为什么你应该总是定义自己的命名约定并坚持下去.

一般建议:始终使用小写标识符,并保持高兴.

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.
Run Code Online (Sandbox Code Playgroud)

  • 好的答案,但是当您写小写时,我必须停下来思考一分钟。 (2认同)