mysql - 如果满足条件则更新一行或使用 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。请哪位大神帮帮我,谢谢!!
解决方案
推荐阅读
- c# - 许多 try-catch 块的最佳实践
- outlook - 有没有办法在基于自定义按钮单击事件的内联回复中打开的组合邮件上调用发送方法
- c# - 如何在 Installsheild 中静默安装 MySql 服务器?
- python - 如何计算给定数据帧列中每个值在某个类间隔内的出现次数?
- asp.net - ASP.NET - 在应用程序启动时调用方法
- antd - Ant 设计在特定上下文中创建模态(不要灰显整个屏幕)
- android - 如何使 {EditText} 接受格式输入:
- java - 如何使用 cURL 命令发布特定的复制代理?
- android - 调用“DisplayManagerGlobal.getDisplayInfo()”会导致应用中的应用无响应 (ANR)
- python - 如何在 Qdialog 中使工作最小化按钮操作