PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Psycopg2 को छोटे अक्षर से शुरू होने वाले टेबल नाम पसंद नहीं हैं

दूसरे उत्तर में जोड़ने के लिए, पहचानकर्ताओं की केस-संवेदीता (तालिका नाम और कॉलम नाम) के बारे में Postresql का व्यवहार है:

  • यदि नाम उद्धृत नहीं किया गया है, तो इसे लोअरकेस में बदल दिया जाता है . अन्यथा, इसे अछूता छोड़ दिया जाता है।
  • बाद में, एक केस सेंसिटिव मैच प्रयास किया गया है।

यह न केवल प्रश्नों के लिए, बल्कि स्कीमा हेरफेर के लिए भी लागू होता है; विशेष रूप से:टेबल निर्माण।

सुनहरा नियम है संगति:

<ब्लॉकक्वॉट>

यदि आप पोर्टेबल एप्लिकेशन लिखना चाहते हैं तो आपको सलाह दी जाती है कि आप हमेशा किसी विशेष नाम को उद्धृत करें या इसे कभी भी उद्धृत न करें

पोस्ट की गई समस्या उत्पन्न हुई, शायद, क्योंकि टेबल और कॉलम नाम निर्माण के समय उद्धृत किए गए थे (इसलिए, उन्हें लोअरकेस में परिवर्तित नहीं किया गया था)। तो, अब उन्हें सभी प्रश्नों में उद्धृत (और केस-संवेदी) होना चाहिए।

आम तौर पर, सभी अपेक्षा के अनुरूप काम करते हैं।

db=# create table Xxx (id integer); -- unquoted, will be converted to lowercase
CREATE TABLE
db=# select * from xXx;    -- this works ok
id
----
(0 rows)
db=# create table "Xxxx" (id integer);  -- will be left untouched
CREATE TABLE
db=# select * from xxxx;                -- bad
ERROR:  relation "xxxx" does not exist
LINE 1: select * from xxxx;
db=# select * from Xxxx;                -- bad
ERROR:  relation "xxxx" does not exist
LINE 1: select * from Xxxx;
^
db=# select * from "Xxxx";               -- ok
id
----
(0 rows)

db=# \dt *xx*
List of relations
Schema | Name | Type  |  Owner
--------+------+-------+----------
public | Xxxx | table | postgres
public | xxx  | table | postgres


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप तारीख गणित कैसे करते हैं जो वर्ष की उपेक्षा करता है?

  2. PostgreSQL 11 का परिनियोजन और प्रबंधन:ClusterControl में नया 1.7.1

  3. मैं postgresql फ़ंक्शन या ट्रिगर से कुछ http अनुरोध कैसे भेज सकता हूं?

  4. कैसे Statement_timestamp () PostgreSQL में काम करता है

  5. तार्किक प्रतिकृति समाधानों की प्रदर्शन सीमाएँ