Trigger Problem

Kaladial

Grünschnabel
moin

ich hab ein problem mit meinem trigger
ich benutz debian und mysql version 5.1.66
wenn ich diesen trigger einbauen will bekomm ich immer die meldung:

MySQL meldet: Dokumentation
#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 '$$' at line 21
SQL:
DROP TRIGGER IF EXISTS `InsUser`;
DELIMITER $$

CREATE TRIGGER InsUser AFTER INSERT ON marktplatz_user
FOR EACH ROW BEGIN

SET @Name = NEW.name;
SET @incomesum = NEW.incomesum;
SET @user_id = NEW.id;
SET @aktdatum = CURDATE();

CASE WHEN
(SELECT id FROM marktplatz_weekdata WHERE user_id = @user_id and datum = CURDATE()) IS NULL
THEN
INSERT INTO marktplatz_weekdata ( id, user_id, datum, name, currentmoney) VALUES (NULL, @user_id, @aktdatum, @Name, @incomesum);
ELSE
Set @idweekdata =(SELECT id FROM marktplatz_weekdata WHERE user_id = @user_id and datum = CURDATE());
UPDATE marktplatz_weekdata SET currentmoney =@incomesum WHERE id = @idweekdata;
END CASE;

DELETE FROM `marktplatz_weekdata` WHERE datum < date_sub( CURDATE(), interval 7 day);

END;
$$

ich hab echt schon viel versucht und langsam verzweifel ich bitte helft mir

mfg Kala
 
Zuletzt bearbeitet von einem Moderator:
Ich kenn zwar nicht die Lösung für dein Problem. Aber ich habe einen Tipp für dich.
Versuche den Trigger nach und nach aufzubauen und dann siehst du woran es scheitert.
Im Klartext du nimmst jedesmal eine Zeile hinzu und wenn du weiterhin den Fehler bekommst, dann weißt du das es an dem Codesegment liegt.
 
if...then hatte ich auch getestet ging ebenso nicht
Insert..On Duplcate Update weis ich derzeit nicht wie ich es anwende ... muss doch ne lösung geben verflucht nochma ... sorry grml sitz seit 2 tagen an dem problem und komm net weiter is doch zum junge hunde bekommen
 
Irgendwie vermiss ich "DELIMITER ;" am Ende des SQL-Statements. Ist das nur ein Kopier-und-Einfüge-Fehler?

EDIT: Wenn nicht, achte auch darauf, das zwischen DELIMITER und ; ein Leerzeichen ist. ;-)
 
Zurück