Membuat tautan basis data dengan cepat sepertinya hal yang tidak biasa dilakukan; skema Anda umumnya harus statis dan stabil. Namun, jika Anda harus, akan lebih mudah untuk membungkus pembaruan dan tautan dalam suatu prosedur, atau hanya mengeluarkan dua pernyataan - mungkin apa pun yang melakukan pembaruan cukup terkontrol, jika tidak, Anda harus berurusan dengan banyak orang yang memicu beberapa ini kali, yang akan lebih berantakan.
Anda mungkin dapat membuat ini berfungsi dengan menambahkan PRAGMA autonomous_transaction;
ke pemicu Anda, seperti yang ditunjukkan untuk masalah serupa (membuat tampilan daripada tautan) dalam jawaban ini , tapi saat ini saya tidak dalam posisi untuk mengujinya.
create or replace
TRIGGER CreateLinkTrigger
after UPDATE of Year ON tableInit
for each row
DECLARE
add_link VARCHAR2(200);
PRAGMA autonomous_transaction;
BEGIN
...
Anda juga dapat membuat pemicu mengirimkan tugas asinkron untuk melakukan DDL, seperti yang dijelaskan dalam jawaban ini , dan ada lebih banyak contoh dalam jawaban ini
, di mana Anda akan mengubah blok anonim pekerjaan untuk melakukan execute immediate
.
Mungkin akan lebih baik untuk membuat tautan untuk beberapa tahun ke depan sebelumnya selama jendela pemeliharaan, atau sesuai jadwal, atau dari prosedur; daripada mencoba mengaitkan perubahan skema dengan perubahan data.