gpt4 book ai didi

php - 表的触发器可以应用于同一个表中的跟踪吗?

转载 作者:行者123 更新时间:2023-11-29 15:03:46 24 4
gpt4 key购买 nike

表的触发器可以应用于同一个表中的跟踪吗?

也就是说,如果我有表说“employee”,现在我可以创建一个触发器,以便它跟踪同一“employee”表中的更改

触发例如

create trigger "<triggers_name>"  before insert on employee
For each row
Begin
insert into employee field = timestamp;
end

最佳答案

简而言之,不。

所以让我们考虑一下。

“之前”触发器将在操作(在本例中为“插入”操作)发生之前执行。

如果这可行,并且每次在员工表上发生插入时您都尝试向员工表中进行插入,那么您将永远循环陷入一个巨大的递归困惑中。

引用MySQL文档

"Within a stored function or trigger, it is not permitted to modify a table that is already being used (for reading or writing) by the statement that invoked the function or trigger."

参见this page了解更多信息。

<小时/>

也就是说,如果您需要在插入发生时进行跟踪,我建议使用第二个表,它当然可以通过触发器引用。您为员工表创建一个 FK,并将时间戳列放入该新表中,然后执行如下操作:

for each row
insert into employee_tracking (id, timestamp) on duplicate key update set timestamp = new_timestamp;

关于php - 表的触发器可以应用于同一个表中的跟踪吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592265/

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