PostgreSQL में गैर-उद्धृत नाम केस-असंवेदनशील हैं। इस प्रकार SELECT * FROM hello
और SELECT * FROM HELLO
समकक्ष हैं।
हालांकि, उद्धृत नाम केस-संवेदी होते हैं। SELECT * FROM "hello"
है नहीं SELECT * FROM "HELLO"
।
उद्धृत नामों और गैर-उद्धृत नामों के बीच एक "पुल" बनाने के लिए, गैर-उद्धृत नामों को परोक्ष रूप से कम किया जाता है, इस प्रकार hello
, HELLO
और HELLO
"hello"
. के बराबर हैं , लेकिन "HELLO"
. को नहीं या "HeLLo"
(ओओपीएस!)।
इस प्रकार, बनाते समय PostgreSQL में संस्थाओं (तालिकाओं, विचारों, प्रक्रियाओं, आदि) के लिए, आपको उन्हें या तो गैर-उद्धृत, या उद्धृत-लेकिन-लोअरकेस निर्दिष्ट करना चाहिए।
मौजूदा तालिकाओं/दृश्यों/आदि को परिवर्तित करने के लिए आप ALTER TABLE "FOO" RENAME TO "foo"
जैसी किसी चीज़ का उपयोग कर सकते हैं ।
या, इसे "PostgreSQL-संगत" बनाने के लिए MSSQL से डंप को संशोधित करने का प्रयास करें (ताकि इसमें foo
शामिल हो) s या "foo"
s लेकिन नहीं "FOO"
रों).
- या तो स्पष्ट रूप से डंप फ़ाइल को संपादित करके। (यदि आप Linux का उपयोग कर रहे हैं, तो आप
sed -r 's/"[^"]+"/\L\0/g' dumpfile
कर सकते हैं - हालांकि चेतावनी दी जाती है कि यह कमांड स्ट्रिंग लिटरल में टेक्स्ट को भी संशोधित कर सकता है।) - या MSSQL से डंप प्राप्त करते समय कुछ विकल्प निर्दिष्ट करके। (मुझे यकीन नहीं है कि एमएसएसक्यूएल में ऐसे विकल्प हैं, इसका इस्तेमाल कभी नहीं किया, लेकिन शायद ऐसे विकल्प मौजूद होने चाहिए।)