user
là một hàm tích hợp sẵn (và một từ khóa). Vì vậy, bạn thực sự không thể sử dụng nó làm tên bảng:
psql (10.4)
Type "help" for help.
postgres=# select user;
user
----------
postgres
(1 row)
postgres=# select * from user;
user
----------
postgres
(1 row)
Và vì là một hàm nên nó không có cột name
.
postgres=# select name from user;
ERROR: column "name" does not exist
LINE 1: select name from user;
^
postgres=#
Nếu bạn đủ điều kiện cho bảng, thì rõ ràng là bạn không tham chiếu đến hàm, mà là bảng.
Bạn luôn có thể xác định tên bảng với lược đồ hoặc sử dụng dấu ngoặc kép:select name from "user";
hoặc đơn giản là tìm một tên bảng không xung đột với các hàm tích hợp sẵn.