मेरा पहला अनुमान यह होगा कि आप दो . के साथ काम कर रहे हैं अलग-अलग टेबल नाम bg
. स्कीमा में से एक tiger
, और दूसरा एक अज्ञात स्कीमा में जो tiger
. से पहले आता है आपके search_path
. में - या बाघ search_path
में नहीं है बिल्कुल।
bg
. नाम की सभी टेबल ढूंढें (केस सेंसिटिव) मौजूदा डीबी में सभी स्कीमा में:
SELECT * FROM pg_tables WHERE tablename = 'bg';
search_path
को समझने के लिए सेटिंग:
Postgres DB क्लस्टर की संरचना को समझने के लिए:
यदि ऐसा नहीं है, तो आपकी अनुक्रमणिका दूषित हो सकती है। मैं पहले एक REINDEX
आज़माउंगा
:
REINDEX bg_pkey;
विरासत!
मैं आपकी जोड़ी गई तालिका परिभाषा में देखता हूं:
संदेह है कि bg_id ='470370111002'
. वाली पंक्ति वास्तव में चाइल्ड टेबल . में रहता है tiger_data.tn_bg
. लेकिन आपकी FK बाधा पैरेंट टेबल . का संदर्भ देती है . FK बाधाएं विरासत में नहीं मिली हैं।
यदि आप क्वेरी करते हैं तो आपको क्या मिलता है:
SELECT * FROM ONLY bg WHERE bg_id ='470370111002'
अगर मेरी परिकल्पना सही है, तो आपको कोई पंक्ति नहीं मिलती है . अध्याय चेतावनीपढ़ें मजबूत> मैनुअल के वंशानुक्रम पृष्ठ पर ।
संबंधित: