sql >> Database >  >> RDS >> Mysql

MySQL/MariaDB TRIGGER

Wanneer u een trigger schrijft, moet u een scheidingsteken opgeven, zodat mysql uw triggerblok expliciet uitvoert binnen het opgegeven scheidingsteken. Als het scheidingsteken niet is opgegeven, wanneer het een ; . tegenkomt binnen de trigger-instructie zal het proberen de opdracht uit te voeren tot dat blok en daarom kunt u fouten krijgen.

Als u gebruikersinterfacetools gebruikt om de trigger te genereren, kunt u controleren of er een optie is om het scheidingsteken in te stellen, zoals in PHPMyadmin.

In CLI moet de trigger een scheidingsteken hebben en het wordt

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. MySQL:vat alle rijtellingen van tabellen samen in één enkele query

  2. Hoe te modelleren voor eenvoudig databaseonderhoud

  3. Waarom is het laden van SQLAlchemy-objecten via de ORM 5-8x langzamer dan rijen via een onbewerkte MySQLdb-cursor?

  4. CROSS JOIN vs INNER JOIN in SQL