gpt4 book ai didi

php - 在mysql中使用trigger从master表中查找time-in和time out

转载 作者:行者123 更新时间:2023-11-30 21:55:36 25 4
gpt4 key购买 nike

大家好,我这里有个小问题。这个想法很简单。 每次我将新行插入到主表中时,我都需要提取子表的值。

主表:

+--------+------------+-------+   
+ id + dates + time +
+--------+------------+-------+
+ 101 + 2017/07/24 + 07:12 +
+ 101 + 2017/07/24 + 16:02 +
+ 102 + 2017/07/24 + 07:10 +
+ 102 + 2017/07/24 + 15:58 +
+ 103 + 2017/07/24 + 07:02 +
+ 103 + 2017/07/24 + 16:05 +
+ 101 + 2017/07/25 + 07:10 +
+ 101 + 2017/07/25 + 15:34 +
+ 102 + 2017/07/25 + 07:00 +
+ 102 + 2017/07/25 + 16:38 +
+ 103 + 2017/07/25 + 07:02 +
+ 103 + 2017/07/25 + 16:18 +

然后我们去寻找每次将新行插入到主表时触发的子表。表格应该是这样的:

+--------+------------+---------+----------+   
+ id + dates + time_in + time_out +
+--------+------------+---------+----------+
+ 101 + 2017/07/24 + 07:12 + 16:02 +
+ 102 + 2017/07/24 + 07:10 + 15:58 +
+ 103 + 2017/07/24 + 07:02 + 16:05 +
+ 101 + 2017/07/25 + 07:10 + 15:34 +
+ 102 + 2017/07/25 + 07:00 + 16:38 +
+ 103 + 2017/07/25 + 07:02 + 16:18 +

通常,我会编写此SQL 代码来生成子表:

INSERT INTO child_table (id, dates, time_in, time_out) 
SELECT id, dates, MIN(time) as time_in, MAX(time) as time_out FROM
master_table GROUP BY dates, id

在我意识到我的代码需要更长的时间来加载页面之前。我认为使用触发器会更有效率。请帮助:)

最佳答案

好吧,如果你正在手动插入并想要触发器使用这个

DELIMITER //
CREATE TRIGGER `ADD_DATA_AUTO` AFTER INSERT ON `MASTERTABLE` FOR EACH ROW BEGIN

INSERT INTO child_table (id, dates, time_in, time_out)
SELECT id, dates, MIN(time) as time_in, MAX(time) as time_out FROM
master_table GROUP BY dates, id


END//
DELIMITER ;

这个触发器的作用是告诉 mysql 在 MASTERTABLE 中运行插入查询 AFTER INSERT

关于php - 在mysql中使用trigger从master表中查找time-in和time out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45296626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com