私の最初の推測は、あなたが2つを扱っているということです さまざまなテーブル 名前付きbg
。スキーマtiger
に1つ 、およびtiger
の前にある非公開スキーマの別の1つ search_path
で -またはtigerが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'
私の仮説が成り立つ場合、行がない 。 章警告強い> マニュアルの継承ページ 。
関連: