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

INSERT тригер за вмъкване на запис в същата таблица

Мутация се случва всеки път, когато имате тригер на ниво ред, който променя таблицата, върху която задействате. Проблемът е, че Oracle не знае как да се държи. Вмъквате ред, самият тригер вмъква ред в същия таблица и Oracle се обърква, защото тези вмъквания в таблицата поради тригера, те също ли са обект на действието на тригера?

Решението е процес в три стъпки.

1.) Ниво на израз преди задействане, което инстанцира пакет, който ще следи вмъкнатите редове.

2.) Задействане на ниво ред преди или след, което записва информацията за този ред в променливите на пакета, които бяха създадени в предишната стъпка.

3.) Ниво на израз след задействане, което вмъква в таблицата всички редове, които са записани в променливата на пакета.

Пример за това можете да намерите тук:

http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936

Надявам се, че това помага.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Алтернатива на sys_refcursor

  2. Как получавате следващата стойност в последователност в променлива?

  3. TIMESTAMPDIFF в Oracle 11g?

  4. Актуализирайте колоните с нулеви стойности

  5. Свържете Sys като Sysdba:Недостатъчни привилегии