PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Грешка:Ключ ... не присъства в таблицата

Първото ми предположение е, че си имате работа с две различни масици с име 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'

Ако моята хипотеза е валидна, получавате няма ред . Прочетете главата Предупреждения на страницата Наследяване на ръководството .

Свързани:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избирането от pg_catalog.pg_settings се забави след актуализиране до PostgreSQL 12 (windows)

  2. Изберете множество идентификатори от последователност на PostgreSQL

  3. Как да направя заявка за низ от JSON въз основа на друг низ в рамките на JSON в PostgreSQL?

  4. Как да получите текущата дата и час (без часова зона) в PostgreSQL

  5. Грешката, върната от db.Exec(...) има ли код?