MySQL - phpMyAdmin - TRIGGER Problem

LxLehrling

Grünschnabel
Hallo Zusammen,

nach stundenlanger Suche im Internet, möchte ich euch nun um Rat fragen.

Ich habe folgenden Trigger (phpMyAdmin) erstellt:

Code:
CREATE TRIGGER `test` BEFORE UPDATE ON `aktivuser`
FOR EACH ROW BEGIN
DELETE FROM aktivuser WHERE (CURRENT_TIMESTAMP - timestamp) >= 25;
END

Soweit alles noch in Ordnung, nun möchte ich ein UPDATE auf dieselbe Tabelle "aktivuser"
machen, dabei bekomme ich aber folgende Meldung:

#1442 - Can't update table 'aktivuser' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Vielen Dank schonmal im Voraus.

Viele Grüße,

LxLehrling
 
Du kannst nicht ein Update auf die Tabelle machen, weil der Trigger beim Update ausgelöst wird.

Das gibt eine ENdlosschleife

Update -> BEFORE-UPDATE-TRIGGER -> Update -> BEFORE-UPDATE-TRIGGER -> Update -> BEFORE-UPDATE-TRIGGER -> Update -> BEFORE-UPDATE-TRIGGER -> Update -> BEFORE-UPDATE-TRIGGER -> Update -> BEFORE-UPDATE-TRIGGER -> Update usw.
 
Danke für die schnelle Antwort...


Ich habe hier jedoch ein Beispiel:

Code:
GO 

CREATE Trigger tr_bestell
ON Artikel
AFTER UPDATE
AS 
INSERT Bestell
SELECT artnr FROM inserted WHERE bestand < 10

------

Code:
UPDATE Artikel 
SET bestand = 8
WHERE artNr = 1


Das Beispiel würde eigentlich demselbe entsprechen.
Dieses habe ich auf einem SQL Server von Microsoft bei einer Übung mal ausprobiert und es lief,
sprich keine Endlosschleife.

Deshalb verstehe ich nicht warum das hier nicht funktioniert.

Ich werde als Lösung einfach eine zusätzliche Tabelle anlegen oder gibt es da einen besseren Vorschlag?
 
Zuletzt bearbeitet:
Zurück