我找了不少,似乎找不到这个问题的答案。我对mysql还比较陌生,这是我以前编写的php脚本,用于更新各个表,但更希望它在表更改时在数据库上自动更新。
当我通过google脚本更新一个表时,我需要从主表中的不同行按日期更新大约6个不同的表,每个表需要来自不同列的数据。
我知道这不是正确的方法,但我需要触发器来有效地执行以下操作;
CREATE TRIGGER dash_1
ON global_summary AFTER UPDATE
UPDATE widget_dash_2 (date, metric)
WHERE inc_id=100 SELECT date, volume
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 1))
UPDATE widget_dash_2 (date, metric)
WHERE inc_id=101 SELECT date, volume
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 8))
这将是表“global\u summary”中的一列“volume”,然后我需要加上另外5个更新,例如;
UPDATE widget_dash_3 (date, metric)
WHERE inc_id=100 SELECT date, score
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 1))
UPDATE widget_dash_3 (date, metric)
WHERE inc_id=101 SELECT date, score
FROM global_summary
WHERE (`date` = SUBDATE(CURDATE(), 8))
其中“分数”是“全球综合大学汇总”表中的另一列。
任何指导都将不胜感激。几天来我一直在寻找一些关于这方面的指导,这让我更加困惑。
我假设我需要对数组做一些事情,并首先从主表中获取所有数据,但是我如何才能分割这些数据呢?
@粘性钻头,
不幸的是,我不得不把这些数据放在这些小表格中,相信我,我宁愿直接从全局汇总中提取出来。
CREATE TABLE `global_summary` (
`id` int(11) DEFAULT NULL,
`date` date DEFAULT NULL,
`volume` int(10) DEFAULT NULL,
`volume_problem` int(10) DEFAULT NULL,
`removed` int(10) DEFAULT NULL,
`score` int(10) DEFAULT NULL,
`error` int(10) DEFAULT NULL,
`total` int(10) DEFAULT NULL,
`previous` int(10) DEFAULT NULL,
`entryID` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
所有的 Jmeter 盘;
CREATE TABLE `widget_dash_2` (
`inc_id` int(11) NOT NULL,
`date` date DEFAULT NULL,
`metric` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
感谢您目前的反馈,是的,我可能把更新和插入混淆了。
暂无答案!
目前还没有任何答案,快来回答吧!