sql >> Database >  >> RDS >> Oracle

Oracle na update trigger maken openbare databaselink

On-the-fly een databasekoppeling maken lijkt ongebruikelijk; uw schema moet over het algemeen statisch en stabiel zijn. Als het echter moet, zou het eenvoudiger zijn om de update en de link in een procedure in te pakken, of gewoon twee verklaringen af ​​te geven - vermoedelijk wordt alles wat de update uitvoert toch redelijk gecontroleerd, anders zou je te maken krijgen met meerdere mensen die dit meerdere activeren tijden, wat nog meer een puinhoop zou zijn.

U kunt dit waarschijnlijk laten werken door PRAGMA autonomous_transaction; . toe te voegen naar uw trigger, zoals aangetoond voor een soortgelijk probleem (het maken van een weergave in plaats van een link) in dit antwoord , maar ik kan dat momenteel niet testen.

create or replace
TRIGGER CreateLinkTrigger
after UPDATE of Year ON tableInit 
for each row
DECLARE
    add_link VARCHAR2(200);
    PRAGMA autonomous_transaction;
BEGIN
    ...

U kunt de trigger ook een asynchrone taak laten verzenden om de DDL uit te voeren, zoals beschreven in dit antwoord , en er is meer van een voorbeeld in dit antwoord , waar u de anonieme blokkering van de taak zou wijzigen om uw execute immediate .

Het is waarschijnlijk beter om de koppelingen voor de komende jaren gewoon van tevoren aan te maken tijdens een onderhoudsvenster, of volgens een schema, of vanuit een procedure; in plaats van te proberen een schemawijziging aan een gegevenswijziging te koppelen.




  1. Meerdere geparametriseerde variabelen toevoegen aan een database in c#

  2. Flask before_request en teardown_request voor DB-verbindingen

  3. Komkommer- en RSpec-testen met zeus:Postgres wordt gebruikt door andere gebruikers

  4. Eenvoudige manier om één record uit MySQL te lezen