我开始简单:
hoops=# select * from core_school limit 3;
id | school_name | nickname
----+------------------+----------
1 | Marshall |
2 | Ohio |
3 | Houston |
(10 rows)
Run Code Online (Sandbox Code Playgroud)
让我们介绍一个故意错误:
hoops=# select name from core_school;
ERROR: column "name" does not exist
LINE 1: select name from core_school;
Run Code Online (Sandbox Code Playgroud)
但为什么这有效呢?(意外结果!):
hoops=# select core_school.name from core_school limit 3;
name
-----------------
(1,Marshall,"")
(2,Ohio,"")
(3,Houston,"")
(3 rows)
Run Code Online (Sandbox Code Playgroud)
"名称"列在哪里来自第三个查询?
这是自动PostgreSQL播放功能,允许呼叫function(argument)为argument.function.
你真正称呼的是
SELECT NAME(core_school)
FROM core_school
Run Code Online (Sandbox Code Playgroud)
与此相比:
SELECT (1::int).exp
--
2.71828182845905
Run Code Online (Sandbox Code Playgroud)
这是非常自我解释的.
这种"特征"经常导致混乱,并且(最终)将被删除9.1.