mysql帮忙写一个触发器,很急

Tony_Xian 2018-02-09 11:10:01
数据库用到的两张表和表结构如下:





需求:
当new_table插入一行数据时,如果new_table1有一行记录中的日期和物品是能在new_table中找到,则将new_table中符合这个日期和物品的所有记录的数量,合成材料1,合成材料2,合成材料3相加,合成材料总和是有合成材料1,合成材料2,合成材料3相加,最后再将所有合成材料3相加

如果在new_table1中找不到和new_table中配料日期和物品相符合的记录,则将new_table新插入的那行数据赋值给new_table1,并计算合成材料总和(依然是合成材料1,合成材料2,合成材料3相加)

总的意思是每个时刻,new_table1的同种物品同一天最多只能有一条记录

请教一下各位,谢谢了






...全文
1016 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-02-09
  • 打赏
  • 举报
回复
-- 在日期和物品上建立唯一索引
alter table new_table1 add unique(日期,物品);

-- 在 new_table 上建立触发器
create trigger tr_insert_new_table after insert on new_table for each row
insert into new_table1(日期,物品,合成材料1,合成材料2,合成材料3)
values(日期,物品,合成材料1,合成材料2,合成材料3
on duplicate key update
	合成材料1=values(合成材料1)+合成材料1,
	合成材料2=values(合成材料2)+合成材料2,
	合成材料3=values(合成材料3)+合成材料3
;
zjcxc 2018-02-09
  • 打赏
  • 举报
回复
少写了 new.
-- 在日期和物品上建立唯一索引
alter table new_table1 add unique(日期,物品);

-- 在 new_table 上建立触发器
create trigger tr_insert_new_table after insert on new_table for each row
insert into new_table1(日期,物品,合成材料1,合成材料2,合成材料3)
values(new.日期,new.物品,new.合成材料1,new.合成材料2,new.合成材料3)
on duplicate key update
	合成材料1=values(合成材料1)+合成材料1,
	合成材料2=values(合成材料2)+合成材料2,
	合成材料3=values(合成材料3)+合成材料3
;
Tony_Xian 2018-02-09
  • 打赏
  • 举报
回复
引用 2 楼 zjcxc 的回复:
当new_table插入一行数据时 -------------------- 说明触发器在 new_table 上 则将new_table中符合这个日期和物品的所有记录的数量,合成材料1,合成材料2,合成材料3相加 -------------------- 说明你要更新的仍然是 new_table MySQL 中不支持这样的行为
我可能说的不够明确,这里相加后的更新是指更新new_table1
zjcxc 2018-02-09
  • 打赏
  • 举报
回复
当new_table插入一行数据时 -------------------- 说明触发器在 new_table 上 则将new_table中符合这个日期和物品的所有记录的数量,合成材料1,合成材料2,合成材料3相加 -------------------- 说明你要更新的仍然是 new_table MySQL 中不支持这样的行为
Tony_Xian 2018-02-09
  • 打赏
  • 举报
回复
补充下,有数据的那张表是new_table,没数据的是new_table1
Main_csdn_String 2018-02-09
  • 打赏
  • 举报
回复
还有这种操作吗。牛皮。
源码链接: https://pan.quark.cn/s/a4b39357ea24 在本研究中,我们将详细研究如何借助Python执行数据可视化,旨在剖析2018年期间中国四个主要城市——北京、上海、广州以及深圳的空气质量状况。通过绘制反映空气质量指数(AQI)与细颗粒物(PM2.5)变化趋势的图表,我们能够深入理解这些大都市全年的空气环境质量,并明确评估其优良天气所占的比重。 我们必须首先进行数据准备工作。在当前提供的压缩文件内,名为"2018天气"的文件极有可能是数据来源,其中可能收录了涉及四个城市每日空气质量监测的详细信息。这些数据通常涵盖日期、城市名称、AQI数值、PM2.5含量等核心参数。在Python编程环境中,我们惯常运用pandas库来对这类结构化数据进行高效的处理和分析。 1. **数据导入与初步处理**: - 利用`pandas.read_csv()`方法来导入存储为CSV格式的数据资料。 - 数据整理:对数据中的空白项、非正常数值进行修正,保证数据的精确性。 - 调整日期字段的格式,确保其能够适用于时间序列分析的需求。 2. **数据深度分析**: - 针对每个城市的AQI和PM2.5数据执行统计性描述,例如计算平均值、中位数、标准偏差等指标。 - 确定空气质量良好天气的天数,即那些AQI值低于75(依据中国的空气质量评估标准)的日数。 3. **数据呈现**: - 运用matplotlib或seaborn工具绘制折线图,直观展示四个城市在2018年全年的AQI和PM2.5变化动态。 - 可通过采用不同的颜色方案和线条类型来区分不同城市的数据系列。 - 添加必要的图示元素,如日期坐标轴、城市名称标注、图表标题及图例说明,以提升图表的可读...

57,064

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧