OID तालिका प्राप्त करने के लिए, ऑब्जेक्ट आइडेंटिफ़ायर टाइप करें regclass
(उसी DB से कनेक्ट होने पर):
SELECT 'mytbl'::regclass::oid;
यह search_path
के साथ दिए गए नाम के साथ पहली तालिका (या दृश्य, आदि) ढूंढता है या नहीं मिलने पर अपवाद उठाता है।
खोज पथ पर निर्भरता को दूर करने के लिए स्कीमा-योग्य तालिका नाम:
SELECT 'myschema.mytbl'::regclass::oid;
पोस्टग्रेज में 9.4 या बाद में आप to_regclass('myschema.mytbl')
. का भी उपयोग कर सकते हैं , जो तालिका नहीं मिलने पर अपवाद नहीं उठाता:
- किसी दिए गए स्कीमा में तालिका मौजूद है या नहीं, इसकी जांच कैसे करें
फिर आपको केवल कैटलॉग तालिका pg_attribute
. को क्वेरी करने की आवश्यकता है स्तंभ के अस्तित्व के लिए:
SELECT TRUE AS col_exists
FROM pg_attribute
WHERE attrelid = 'myschema.mytbl'::regclass
AND attname = 'mycol'
AND NOT attisdropped -- no dropped (dead) columns
-- AND attnum > 0 -- no system columns (you may or may not want this)