使用触发器从一个表中提取ID并映射到MySQL中的另一个表

时间:2019-10-16 15:54:03

标签: mysql triggers

我有两个表“ Sample”和“ Results”,我想提取Sample表的ID并将其映射到Results表中。

为了更好的理解,我将举一个例子,

sample_id (Auto increment)     Sample_No      Sample_Name    Experiment_id
     1                           NL-1           ABC             300
     2                           NL-2           XYZ             300
     3                           NL-3           JKL             300

     4                           NL-3           WER             301


现在的样品编号:NL-1将具有多个结果名称,其他样品名称也将具有

result_id (Auto increment)     Sample_No      Result_Name    Experiment_id 
     1                           NL-1           abc             300
     2                           NL-2           abc             300
     3                           NL-3           abc             300
     4                           NL-1           xyz             300
     5                           NL-2           xyz             300
     6                           NL-3           xyz             300
     7                           NL-1           jfk             300
     8                           NL-2           jfk             300

     9                           NL-1           abc             301
     10                          NL-1           xyz             301

所以我想做的是通过将样本ID与Experiment_id和Result_Name进行比较来提取样本ID。像这样的东西。

result_id (Auto increment)  **Sample_id**    Sample_No      Result_Name  Experiment_id 
     1                         1            NL-1           abc             300
     2                         1            NL-2           abc             300
     3                         1            NL-3           abc             300
     4                         2            NL-1           xyz             300
     5                         2            NL-2           xyz             300
     6                         2            NL-3           xyz             300
     7                         3            NL-1           jfk             300
     8                         3            NL-2           jfk             300

     9                         4            NL-1           abc             301
     10                        4            NL-1           xyz             301

我知道如何创建触发器来提取最近的Experiment_id,但是我无法执行此特定任务。请帮帮我。

create trigger SAMPLE_before_insert before insert on SAMPLE FOR EACH ROW 
  set new.Experiment_id = (select max(Experiment_id) from EXPERIMENT);

谢谢。

0 个答案:

没有答案