Вытащите идентификаторы из одной таблицы и отобразите в другую в MySQL, используя триггер - PullRequest
0 голосов
/ 16 октября 2019

У меня есть две таблицы 'Sample' и 'Results', я хочу получить идентификаторы таблицы Sample и отобразить их в таблицу 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 будет иметь несколько имен результатов, как и другие Sample_Names

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

Итак, я хочу получить идентификатор образца, сравнив его сExperiment_id и Result_Name. Примерно так.

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);

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...