AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken [MariaDB] Update-Trigger der die selbe Tabelle updaten soll
Thema durchsuchen
Ansicht
Themen-Optionen

[MariaDB] Update-Trigger der die selbe Tabelle updaten soll

Ein Thema von Medium · begonnen am 30. Jul 2020 · letzter Beitrag vom 30. Jul 2020
 
Medium

Registriert seit: 23. Jan 2008
3.687 Beiträge
 
Delphi 2007 Enterprise
 
#1

[MariaDB] Update-Trigger der die selbe Tabelle updaten soll

  Alt 30. Jul 2020, 16:15
Datenbank: MariaDB • Version: 10.? • Zugriff über: UniDAC
Moin!

Ich habe eine Tabelle mit Daten zu Rohstofftanks. Ich möchte nun einen "virtuellen" Tank einfügen, der eine Untergruppe der anderen Tanks als Eins wiederspiegeln soll. Insbesondere den Kombinierten Füllstand. Da wäre an sich ein Trigger ja eine schöne Sache. Leider habe ich das Problem, dass ich den u.s. Trigger zwar erzeugen kann, bei einem UPDATE auf die Tabelle gibt's aber Mecker, weil der Trigger seine eigene Tabelle updaten will. Dass das an sich problematisch ist, leuchtet mir grundsätzlich ein. Durch meinen Code wird zwar sichergestellt, dass es zu keinem Konflikt kommen kann, aber das weiß das DBMS ja nicht.

Mein Trigger so weit:
SQL-Code:
DELIMITER //

DROP TRIGGER IF EXISTS update_T10;

CREATE TRIGGER update_T10 AFTER UPDATE ON tanks FOR EACH ROW
BEGIN
  IF NEW.tank_nr IN (1, 2, 3, 5) THEN
    UPDATE tanks
    SET inhalt = (
      SELECT SUM(inhalt)
      FROM tanks
      WHERE tank_nr IN (1, 2, 3, 5))
    WHERE tank_nr = 10;
  END IF;
END; //

DELIMITER ;
T10 soll also die Summe der Inhalte von T1, T2, T3 und T5 bekommen. Ein Update findet also nicht statt, wenn sich der Inhalt von T10 selbst ändert, sodass kein rekursiver Endlosaufruf passieren kann. Kann ich das dem DBMS irgendwie begreiflich machen? Kann man statt "FOR EACH ROW" vielleicht etwas spezifischer werden?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz