PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kesalahan:Kunci ... tidak ada di tabel

Dugaan pertama saya adalah Anda berurusan dengan dua tabel yang berbeda bernama bg . Satu di skema tiger , dan satu lagi dalam skema yang dirahasiakan yang muncul sebelum tiger di search_path . Anda - atau harimau tidak ada di search_path sama sekali.

Temukan semua tabel bernama bg (peka huruf besar/kecil) di semua skema di db saat ini:

SELECT * FROM pg_tables WHERE tablename = 'bg';

Untuk memahami search_path pengaturan:

Untuk memahami struktur cluster DB Postgres:

Jika bukan itu, indeks Anda mungkin rusak. Pertama-tama saya akan mencoba REINDEX :

REINDEX bg_pkey;

Warisan!

Saya melihat dalam definisi tabel Anda yang ditambahkan:

Mencurigai bahwa baris dengan bg_id ='470370111002' sebenarnya tinggal di tabel anak tiger_data.tn_bg . Tetapi batasan FK Anda merujuk ke tabel induk . Batasan FK tidak diwariskan.
Apa yang Anda dapatkan jika Anda menanyakan:

SELECT * FROM ONLY bg WHERE bg_id ='470370111002'

Jika hipotesis saya benar, Anda mendapatkan tidak ada baris . Baca bab Peringatan di halaman Warisan dari manual .

Terkait:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesetaraan dari dual di PostgreSQL

  2. Peringkat berdasarkan urutan tanggal

  3. Kapan saya harus menggunakan kolom array vs. asosiasi di rel

  4. Cara menggunakan lokasi fisik baris (ROWID) dalam pernyataan DELETE

  5. gem install pg error:tidak dapat memahami kern.osversion `14.0.0' di Yosemite dengan Ruby 2.1.5