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";
या बस एक टेबल नाम खोजें जो बिल्ट-इन फ़ंक्शंस से नहीं टकराता।