首页 > 解决方案 > 如果满足条件则更新一行或使用 mysql 5.7.22 中的触发器插入包含数据的新行

问题描述

嗨,我有两张桌子实验和样品。我想创建一个触发器,这样如果“Sample”表中有一个条目,它应该检查“Experiment_name”和“Sample_name”是否与前一个条目相同,如果两者都匹配,那么它应该更新该行,如果不是那么它应该进入一个新行。

例如

EXPERIMENT TABLE
Experiment_id(auto_incremented)  Exp_name
1                                  ABC

SAMPLE TABLE
Sample_id   Experiment_id  Experiment_name    sample_name   Sample_result
1              1                  ABC              abc       100
2              1                  ABC              xyz       100
3              1                  ABC              hjk       300


**New Entry - Experiment name - ABC and sample_name - xyz then Sample_result - 200  **

SAMPLE TABLE
Sample_id   Experiment_id  Experiment_name    sample_name   Sample_result
1              1                  ABC              abc       100
**2            1                  ABC              xyz       200**
3              1                  ABC              hjk       300

如果实验名称 - ABC 和 sample_name - wer 不存在,则 Sample_result - 200 应作为新行插入。

样品表

Sample_id   Experiment_id  Experiment_name    sample_name   Sample_result
1              1                  ABC              abc       100
2              1                  ABC              xyz       100
3              1                  ABC              hjk       300
**4            1                  ABC            wer       200**

我可以简单地使用更新来做到这一点,但我使用的是 MySQL 工作台,我将使用导入向导从 CSV 导入数据,这就是我希望它自动化的原因。

我正在使用 mysql 5.7.22。请哪位大神帮帮我,谢谢!!

标签: mysqltriggers

解决方案


推荐阅读