xp-user
Goto Top

Create Trigger After Update MySQL

Hallo zusammen, ich versuche mich mit einem Trigger der mir bei einer speziellen Tabelle den Value automatisch wieder auf standard zurücksetzt.


CREATE TRIGGER tr_up_otpions_value
BEFORE UPDATE ON option_value FOR EACH ROW
BEGIN
IF (:old.option_value = 'https://mydomain.com') then
:new.option_value := 'https://mydomain.com';
end if;
end;


in der Tabelle asdlfkj_options gibt es die Zeile 1 und 2 mit option_id 1 und 2 die im Value (option_value) https://mydomain.com enthalten müssen.
Wenn diese überschrieben werden, dann soll der Trigger diesen automatisch auf https://mydomain.com zurückändern.
Dies soll aber eben nur in option_id 1 und option_id 2 erfolgen

Leider ergibt es einen Fehler:


#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ':old.option_value = 'https://mydomain.com') then
:new.option_value := 'https...' in Zeile 4

Content-Key: 621175

Url: https://administrator.de/contentid/621175

Printed on: April 26, 2024 at 19:04 o'clock

Member: SachsenHessi
SachsenHessi Nov 11, 2020 at 14:16:54 (UTC)
Goto Top
Hallo,
das sieht aber nach PL/SQL-Syntax (:old.feld) aus.
MS arbeitet da anders.
Schau mal nach
Member: SlainteMhath
SlainteMhath Nov 11, 2020 at 15:05:34 (UTC)
Goto Top
Moin,

Lösung steht doch da?
Bitte die korrekte Syntax im Handbuch nachschlagen
face-smile

lg,
Slainte

PS: Falls dein Google defekt ist: https://docs.microsoft.com/en-us/sql/t-sql/functions/update-trigger-func ...
Member: xp-user
xp-user Nov 11, 2020 at 16:34:38 (UTC)
Goto Top
danke, ich habe es nachgeschaut, aber bin leider nicht vom Fach sondern versuche das hinzukriegen.
Nach 4h habe ich mich dann an dieses Forum gewendet und ich schelm dachte, da krieg ich eine Lösung. face-smile
Member: MadMax
MadMax Nov 16, 2020 at 13:29:27 (UTC)
Goto Top
Hallo xp-user,

bissl spät, habe es eben erst gesehen. Du sollst nicht dumm sterben:
create trigger tr_up_otpions_value on asdlfkj_options for update as
begin
	if update (option_value)
	begin
		update	asdlfkj_options
		set	option_value = 'https://mydomain.com'  
		from	asdlfkj_options o
			join deleted d on d.option_id = o.option_id
		where	o.option_id in (1, 2) and
			o.option_value <> 'https://mydomain.com'  
	end
end

Gruß, Mad Max
Member: xp-user
xp-user Nov 17, 2020 at 08:25:54 (UTC)
Goto Top
Dankeschön, leider gibt mir das ebenfalls eine Fehlermeldung 1064
bildschirmfoto 2020-11-17 um 09.24.42
Member: SlainteMhath
SlainteMhath Nov 17, 2020 at 10:31:51 (UTC)
Goto Top
Evtl. stößt er sich an der 3 am Anfang des Tabellennamens. Setz die Namen mal in Anführungszeichen
Member: xp-user
xp-user Nov 17, 2020 at 15:55:06 (UTC)
Goto Top
leider ebenfalls eine Errormeldung. Sowohl mit " " als auch mit ' '
screen
Member: MadMax
MadMax Nov 17, 2020 at 22:53:29 (UTC)
Goto Top
Moin,

was ein fehlender Buchstabe nicht so alles ausmachen kann face-smile

Bei der Überschrift "Create Trigger After Update MSQL" haben hier alle an MSSQL gedacht, aber Du hast ja MySQL. Da paßt mein Trigger natürlich nicht. Und bei MySQL kann ich Dir auch nicht weiterhelfen, da kann ich auch nur auf das Handbuch verweisen, sorry.

Gruß, Mad Max
Member: xp-user
xp-user Nov 18, 2020 at 08:43:28 (UTC)
Goto Top
ich habe den Titel angepasst. Sorry für das Missverständnis dass dadurch resultierte.
Dennoch denke ich das es hier jemanden gibt, der soetwas schon mal unter MySQL gelöst hat.
Member: SlainteMhath
SlainteMhath Nov 18, 2020 updated at 09:14:15 (UTC)
Goto Top
...MySQL...

Ok, dann hätte das der TO mal dazuschreiben sollen .( Ok, bin auch raus.

/EDIT: Just RTFM! https://dev.mysql.com/doc/refman/8.0/en/create-trigger.html
Member: xp-user
xp-user Nov 20, 2020 at 09:58:30 (UTC)
Goto Top
Danke für den Link.

Eines soll noch erwähnt werden dürfen. Ich finde es befremdlich, wie ich in diesem Beitrag Antwort erhalten habe.
Dumm sterben und Read the Fucking Manual dienen nicht dem guten Ton in einem Forum.
Wer helfen will der darf gerne, soll es doch bitte unterlassen beleidigend zu sein.