user
組み込み関数(およびキーワード)です。したがって、実際にはテーブル名として使用することはできません:
psql (10.4)
Type "help" for help.
postgres=# select user;
user
----------
postgres
(1 row)
postgres=# select * from user;
user
----------
postgres
(1 row)
また、関数であるため、name
列はありません。 。
postgres=# select name from user;
ERROR: column "name" does not exist
LINE 1: select name from user;
^
postgres=#
テーブルを修飾する場合、関数を参照しているのではなく、テーブルを参照していることは明らかです。
テーブル名は常にスキーマで修飾するか、二重引用符を使用できます。select name from "user";
または、組み込み関数と衝突しないテーブル名を見つけるだけです。