Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „MySQL (create) Trigger“

Refus

aka Noisy

Ich hab einen Syntaxfehler beim Erstellen eines Triggers und bin nicht in der Lage ihn einzugrenzen oder zu beheben.
Ziel des Triggers wäre es immer wenn sich die Spalte gid in users ändert eine neue Zeile in trigger_user einzufügen in der der neue und der alte Wert von gid der userid und die Zeit der Änderung stehen.

Code:
CREATE TRIGGER trigger_u BEFORE UPDATE ON users 
FOR EACH ROW  
BEGIN  IF NEW.gid !=0  THEN
INSERT INTO trigger_user( 'uid', 'old_gid', 'new_gid', 'time' )
VALUES (OLD.id, OLD.gid, NEW.gid, NOW( ));
END IF;
END
Spuckt mir nur folgende Fehlermeldung aus
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''uid', 'old_gid', 'new_gid', 'time' )
VALUES (OLD.id, OLD.gid, NEW.gid, NOW( ))' at line 4
 

stylux

Pixelchemiker

AW: MySQL (create) Trigger

Offensichtlich meckert er an den Spaltennamen von trigger_user, die du in einfache Anführungszeichen gesetzt hast. Er stört sich schlicht an den '.
Soweit ich informiert bin, haben Spaltennamen in MySQL keine einfachen Anführungszeichen bzw. dürfen keine haben.
Es sollte also entweder ganz ohne funktionieren oder mit den Akzent `.
Wenn ich die Seite wieder finde wo steht warum man wann welche Anführungszeichen benutzt dann poste ich sie mal aber derweil würd ich es so machen:
Code:
CREATE TRIGGER `trigger_u` BEFORE UPDATE ON `users` 
FOR EACH ROW  
BEGIN 
IF NEW.gid !=0  THEN
INSERT INTO `trigger_user` ( `uid`, `old_gid`, `new_gid`, `time` )
VALUES (OLD.id, OLD.gid, NEW.gid, NOW( ));
END IF;
END
Ich bin mit der Syntax von Triggern nicht firm, also wenn die stimmt dann sollte das so auch funzen.
 

Refus

aka Noisy

AW: MySQL (create) Trigger

Vielen Danke, ein Schritt, der mich dann auch zur korrekten Lösung brachte:
CREATE TRIGGER `trigger_u`
BEFORE UPDATE ON users
FOR EACH ROW
BEGIN IF NEW.gid !=0 THEN
INSERT INTO trigger_user( `uid`, `old_gid`, `new_gid`, `time` )
VALUES (OLD.id, OLD.gid, NEW.gid, NOW( ));
END IF;
END
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.155
Beiträge
2.581.854
Mitglieder
67.221
Neuestes Mitglied
opaklaus
Oben