Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Trigger before update on object_value on table

Alles zur Datenbankentwicklung im Oracle-Umfeld...

Trigger before update on object_value on table

Beitragvon Mauli » Di 18. Jun 2019, 15:06

Hallo ich habe folgendes Problem und finde leider keine Lösung dazu:

ich habe einen Datentyp stats der die Attribute (max_hp, hp, mp, armor_value) enthält.
Diesen habe ich in meiner Tabelle Creature als "attr stats" umgesetzt.
Das funktioniert auch alles tadellos, nur möchte ich nun einen Trigger haben, der feuert sobald auf max_hp geupdated wird.

ursprünglich (Bevor ich den Datentyp stats hatte) sah der Trigger so aus:

Code: Alles auswählen
create or replace TRIGGER hp_maxhp
    BEFORE UPDATE OF max_hp ON Creature
    FOR EACH ROW
        BEGIN
            IF(:OLD.attr.hp <= :NEW.attr.max_hp) THEN
                :NEW.attr.hp := :NEW.attr.max_hp;
            ELSE NULL;
            END IF;
        END;
      /


Wenn ich anstatt max_hp aber nun attr dahin schreibe, feuert der ja egal auf welches attribut geupdatet wird..
Wie bekomme ich es nun hin das der nur feuert wenn explizit max_hp ein update bekommt??

Freundliche Grüße

Mauli
Mauli
 
Beiträge: 4
Registriert: So 30. Dez 2018, 16:57

Re: Trigger before update on object_value on table

Beitragvon RainerH » Fr 28. Jun 2019, 07:24

Hallo Mauli,

ich komme jetzt nicht aus der Oracle-Welt, aber kannst Du den Trigger nicht innerhalb über Case When steuern - so
als Fallunterscheidung?

Zum Beispiel sowas:
Code: Alles auswählen
create or replace
  TRIGGER ADD_CREATE_DT
  after UPDATE of approved ON Artikel
  for each row
  when (new.approved = 'Y')
  BEGIN
  :new.create_dt := sysdate;
  END;


Würde auch mit IF-Klausel gehen, Case When ist aber schneller...
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 230
Registriert: Fr 1. Nov 2013, 17:58


Zurück zu Oracle

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: