我有一个非常简单的表,如下所示:
它名为anni_tot
,只有一个名为anni
的字段。现在,还有另一个表,看起来像这样:
它被称为people_emp
。
现在,我想在表anni_tot
中插入一个新字段,因此我的表现在看起来像这样:
我需要完成的任务是:在表people_emp
中插入包含上一年( 2020年之前,即2019年)的所有数据的副本,并更新字段anni
。结果应该是:
红色的是我应该得到的。基本上,当在表anni
中添加新的年份时,我需要复制people_emp
中具有year = year -1的所有数据,并将该字段更新为当前年份。
我可以通过php做到这一点,但它很难维护。我试着用触发器来做这件事,但是我被卡住了。
我可以做到这一点,但我的问题是,我现在确实知道如何在people_emp中检索行的数据。有什么想法吗?
DELIMITER //
CREATE TRIGGER nuovo_anno
AFTER INSERT ON anni
FOR EACH ROW
BEGIN
INSERT INTO `people_emp` (`codice`, `nome`, `anno`, `comune`) VALUES ('0', '0', '0', '0');
END; //
DELIMITER ;
发布于 2018-12-24 07:09:27
我认为你想要:
INSERT INTO people_emp (codice, nome, anno, comune)
SELECT pe.codice, pe.nome, 2020, pe.comune
FROM people_emp pe
WHERE pe.anno = 2019;
当向第一个表中添加新行时,可以将此逻辑包括在触发器中。
发布于 2018-12-24 07:13:01
我相信这样的事情会对你有所帮助
DELIMITER //
CREATE TRIGGER nuovo_anno
AFTER INSERT ON anni
FOR EACH ROW
BEGIN
INSERT INTO `people_emp` (`codice`, `nome`, `anno`, `comune`)
SELECT `codice`, `nome`, new.anni, `comune`
FROM `people_emp` where anno = new.anni -1;
END; //
DELIMITER ;
https://stackoverflow.com/questions/53907826
复制相似问题