sql >> Databasteknik >  >> RDS >> Mysql

MySQL/MariaDB TRIGGER

När du skriver en trigger måste du ange en avgränsare så att mysql explicit exekverar ditt triggerblock inom den angivna avgränsaren. Om avgränsaren inte tillhandahålls när den stöter på någon ; inom trigger-satsen kommer den att försöka köra kommandot till det blocket och därför kan du få fel.

Om du använder något användargränssnittsverktyg för att generera triggern kan du kontrollera om det finns ett alternativ att ställa in avgränsaren som i PHPMyadmin.

I CLI måste utlösaren ha en avgränsare och den blir

delimiter //

create trigger Q_DUR_CALC before insert on TASK_Q_SWH
for each row
begin
 declare LCL_Q_DUR INTEGER;
 set LCL_Q_DUR = new.TQ_TASK_DUR - new.TQ_TASK_RUN_DUR;
 SET new.TQ_Q_DUR = LCL_Q_DUR;   
end;//

delimiter ;


  1. Hur man byter namn på en databas i MySQL

  2. SQL Server SMO klagar över att DLL saknas

  3. Programmatiskt hämta SQL Server lagrad procedur källa som är identisk med källan som returneras av SQL Server Management Studio gui?

  4. IRI-Windocks Test Database Repository