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

Съобщение за грешка лоша променлива за свързване в тригера

Тригерът е дефиниран в ACCOUNT маса. Вие публикувахте дефиницията на CUSTOMER маса. Освен ако ACCOUNT таблицата има колони CustName и DOB , което изглежда много малко вероятно, не можете да се обърнете към :new.CustName или :new.DOB -- :new записът е за реда, който в момента се вмъква в ACCOUNT маса.

Къде възнамерявате да получите CustName и DOB за вмъкване в Customer маса?

Връщайки се назад, защо има тригер в Account таблица, която се опитва да вмъкне ред в Customer маса на първо място. Това изглежда като изключително лош дизайн. CustID в Account таблицата вероятно ще бъде външен ключ, който препраща към Customer маса. Това обаче би означавало, че можете да вмъкнете родителския ред в тригер само ако декларирате ограниченията като отлагаеми и ги отлагате в началото на всяка транзакция. Тригерът също така обикновено няма начин да определи информацията за Customer колони, които искате да попълните, което е източникът на грешката, която получавате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle deadlock родител/дете и дете е индексирало FK

  2. Последователността на Oracle за поле за първичен ключ не извлича текущо вмъкнатата стойност в Hibernate

  3. Как да използвам ключовата дума 'as' за псевдоним на таблица в Oracle?

  4. Вътрешно присъединяване срещу Къде

  5. Разлика в датата в Oracle и Java