You may want to put some text here

Met behulp van een trigger inserted data bewerken

Ik wou juist een trigger aanmaken voor het updaten van het CreatedOn veld wanneer er een nieuwe gebruiker in mijn tabel users wordt aangemaakt. Eerst had ik een trigger gemaakt die na het inserten getriggered werd met een SQL query als volgt:

UPDATE users SET CreatedOn=NOW() WHERE Id=new.Id

Die new is een object dat je in je triggers kan gebruiken. Hierin zit in het geval van een insert de data van de insert query. Spijtig genoeg kreeg ik door deze code altijd een foutmelding als deze:

Can't update table 'users' in stored function/trigger
because it is already used by statement which invoked this
stored function/trigger

Dit komt doordat de users tabel op dat moment al gelocked is door de insert query. De oplossing is simpel. Je past gewoon de data direct in het new object aan.

SET NEW.CreatedOn = NOW();

Nu werkt het dus wel en onze code is nog korter en sneller geworden ook.

The Author of this post is Wim Mostmans

Wim Mostmans heeft een eigen webontwikkeling bedrijf Sitebase waar hij voltijds voor werkt. Hij beheert ook nog enkele websites waaronder deze en een Computerforum. Blijf op de hoogte van waar Wim mee bezig is door hem te volgen op Twitter.

Leave a Comment