Hjälp med trigger i MySQL...

ice13

Ny medlem
Gick med
6 Sep 2005
Ort
hemma
Hoj
Italiensk
Finns det någon SH'are som kan MySQL tro ?

Jag har en tabell:
---------------------------------------------------------------
ID|DATUM|NAMN|r_1|r_2|r_3|r_4|r_5 |r_6|r_7|r_8|r_9|HALVTID
---------------------------------------------------------------
1|2010-01-31|JAG|3|3|3|3|3|3|3|3|3|NULL

Jag vill ha en trigger som uppdaterar HALVTID när jag gjort en insert.
HALVTID skall vara summan av col4 -> col9.
I exemplet ovan skall alltså HALVTID bli 27.

Här är mitt försök till trigger, men av nån konstig anledning funkar den inte.
============================================
create trigger update_summa AFTER INSERT UPDATE
ON resultat
FOR EACH ROW BEGIN
update resultat set halvtid = select(r_1 + r_2 +r_3 + r_4 + r_5 + r_6 + r_7 + r_8 + r_9) from resultat where halvtid IS NULL
END;
============================================
FelMSG:
mysql> create trigger update_summa AFTER INSERT or UPDATE ON resultat FOR EACH ROW
r_7 + r_8 + r_9) from resultat where halvtid IS NULL END;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
DATE ON resultat FOR EACH ROW BEGIN update resultat set halvtid = select(r_1 +'
 
Last edited:
Ska du ändra i samma tabell så testa byt ut:
update resultat set halvtid = select(r_1 + r_2 +r_3 + r_4 + r_5 + r_6 + r_7 + r_8 + r_9) from resultat where halvtid IS NULL;

Till:

update resultat set halvtid=(r_1+_r_2+r_3+r_4+f_5+r_6+r_7+r_8+_r9) where halvtid IS NULL;
 
Ska du ändra i samma tabell så testa byt ut:
update resultat set halvtid = select(r_1 + r_2 +r_3 + r_4 + r_5 + r_6 + r_7 + r_8 + r_9) from resultat where halvtid IS NULL;

Till:

update resultat set halvtid=(r_1+_r_2+r_3+r_4+f_5+r_6+r_7+r_8+_r9) where halvtid IS NULL;

Hjällper dessvärre inte. :(
Verkar vara någon feature i MySQL V 5.0.4
Kan inte skapa ens:
create trigger update_summa AFTER INSERT
ON resultat
FOR EACH ROW BEGIN
update resultat set halvtid = 'sporthoj.com'
END;

Får leta bugfixar eller möjligtvis uppgradera och se om det hjälper.
 
Då testar vi igen. :)

delimiter |
CREATE TRIGGER update_summa AFTER INSERT ON resultat
FOR EACH ROW BEGIN
UPDATE resultat SET halvtid=(r_1+_r_2+r_3+r_4+f_5+r_6+r_7+r_8+_r9) where halvtid IS NULL;
END;
delimiter;

:banana
 
mysql> CREATE TRIGGER tr_summa AFTER INSERT
-> ON resultat
-> FOR EACH ROW BEGIN
-> UPDATE resultat SET halvtid = (r_1 + r_2) WHERE halvtid IS NULL;
-> END;
-> delimiter;
-> |
mysql> show triggers from test_db;|
+------------+--------+----------+----------------------------------------------------------------------------+--------+---------+----------+----------------+
| Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer |
+------------+--------+----------+----------------------------------------------------------------------------+--------+---------+----------+----------------+
| tr_halvtid | INSERT | resultat | BEGIN
UPDATE resultat set halvtid = (r_1 + r_2) where halvtid IS NULL;
END | AFTER | NULL | | result@localhost |
+------------+--------+----------+----------------------------------------------------------------------------+--------+---------+----------+----------------+
1 row in set (0.00 sec)


Kan inte begripa vad delimitern gör för nytta egentligen.
Men übertack för hjälpen. :tummenupp
 
Eftersom du har flera kommandon som ska utföras och avslutas med ; så måste du ha en delimiter som visar var själva "gruppen" avslutas. Det är iaf så jag har fattat det.

Kul att kunna hjälpa till. Have fun! :yoparty
 
Nyheter
Yamaha R7-vinnarens rapport: ”Ett riktigt monster på kurviga landsvägar!”

På MC-mässan i vintras anor...

Nisse Hedlund bortgången

Den legendariske motorkonst...

En dag på dragstrippen

Efter att ha varit aktiv so...

Steve McQueens Scott Squirrel till salu

Detta Scott Flying Squirrel...

Dags för Strängnäs Bike Show!

Sista lördagen i augusti är...

Bikeweekend på Kjula denna helg

Den 22-23 augusti är det da...

Motorcycle Inferno #8

Den 5 september blir Laxhol...

Tiotusentals körde Mälaren Runt

Lördagen den 15 augusti gen...

Mälaren Runt fyller 40 år

Nu på lördagen den 15 augus...

Steve Holcombe klar för GGN!

Pressmeddelande 2026-08-10 ...

Back
Top