触发多个动作和循环

时间:2015-05-12 07:56:04

标签: php mysql sql oracle triggers

我的数据库中有3个表。

- train_information
  - 车轴
  - 转向架

当我填写表格时,信息会填入train_information表格,然后如下所示:

train_information table

现在,您看到number_of_axles是4.

axlebogie看起来像这样。

车桥axle table

转向架bogie table

正如您所看到的,触发器仅插入3个轴应该插入的轴。但在转向架表中,我想添加4.
这是一个例子:

How i want it to be

这一切都需要在1触发器中。因为mysql版本不支持具有相同操作的多个触发器(插入后)。

轴触发器已经工作。这是它的外观:

The axle trigger

1 个答案:

答案 0 :(得分:1)

您需要在现有触发器中添加另一个循环

delimiter //
create trigger train_information_ins after insert on train_information
for each row 
begin
 declare x int ;
 declare y int ;
 if(new.number_of_axies >  0 ) then
   set x = 1 ;
   while x < new.number_of_axies do
     insert into axle (train_id,axle)
     values
     (new.train_id,x);
     set x=x+1;
    end while ;

    set y=1;
    while y <= new.number_of_axies do
      insert into bogie (train_id,axle_nr)
      values
      (new.train_id,y); 
       set y=y+1;
     end while ; 
  end if ;
end;//

delimiter ;