Behöver hjälp med att skapa trigger i mysql

Permalänk
Medlem

Behöver hjälp med att skapa trigger i mysql

Jag har ett fält i min mysql databas som ska ge ett fakturanummer och detta ska vara 130000 + id numret. Id numret är satt till auto increment. Jag försöker få fakturanummret att skapas med en trigger men jag får inte rätt på det, jag skickar följande kommando till basen:

CREATE TRIGGER faktura BEFORE INSERT ON twd_pren
FOR EACH ROW BEGIN
SET NEW.Fakturanr = NEW.ID+130000;
END;

Någon som direkt kan se vad problemet är? Ska insert vara before eller after? Är tacksam för all hjälp.

Permalänk
Medlem
Skrivet av Tallrot:

Jag har ett fält i min mysql databas som ska ge ett fakturanummer och detta ska vara 130000 + id numret. Id numret är satt till auto increment. Jag försöker få fakturanummret att skapas med en trigger men jag får inte rätt på det, jag skickar följande kommando till basen:

CREATE TRIGGER faktura BEFORE INSERT ON twd_pren
FOR EACH ROW BEGIN
SET NEW.Fakturanr = NEW.ID+130000;
END;

Någon som direkt kan se vad problemet är? Ska insert vara before eller after? Är tacksam för all hjälp.

Är osäker på om du kan accessa en autoincrement direkt på det sättet men nått som i exemplet på http://forums.mysql.com/read.php?99,142933,143646#msg-143646

Permalänk
Medlem
Skrivet av Tallrot:

Jag har ett fält i min mysql databas som ska ge ett fakturanummer och detta ska vara 130000 + id numret. Id numret är satt till auto increment. Jag försöker få fakturanummret att skapas med en trigger men jag får inte rätt på det, jag skickar följande kommando till basen:

CREATE TRIGGER faktura BEFORE INSERT ON twd_pren
FOR EACH ROW BEGIN
SET NEW.Fakturanr = NEW.ID+130000;
END;

Någon som direkt kan se vad problemet är? Ska insert vara before eller after? Är tacksam för all hjälp.

Kan bero på Autoincrement på ID och att triggern är BEFORE insert. Inte helt 100 på vad som sker först. Om Fakturanr tillåter null kan du testa att ändra till en AFTER insert i stil med koden nedan. Länge sedan jag grejade med MySql men det skulle fungare i MSSql.

CREATE TRIGGER faktura AFTER INSERT ON twd_pren FOR EACH ROW BEGIN UPDATE twd_pren SET Fakturanr = ID + 130000 WHERE ID = NEW.ID END;

Visa signatur

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain.
~John Moore