gpt4 book ai didi

php - 提交后根据时间戳在时间间隔内禁用触发器

转载 作者:行者123 更新时间:2023-11-29 20:30:48 25 4
gpt4 key购买 nike

我这里有一个有趣的问题,有人可以帮助我解决。我有一个主要是整数的表格/表单,偶尔会用一批新数字进行更新。触发器将所有旧数字传递到设计完全相同的第二个表,因为旧数字在一段时间内保留很重要。触发器如下所示:

开始

if NEW.(rowname)<>OLD.(rowname) then
update table2
set table2.rowname = OLD.rowname
where table2.id = OLD.ID;
end if;
...
end

这段代码适用于 100 多行 Integer 类型。现在,那些被委托(delegate)手动插入新数字的人很容易犯错误,而返回更新表单更改错误将不可避免地将错误的数字传递到第二个表(实际上有 5 个表需要保留) 5代数组)。因此,我认为可能有一种方法可以在表中包含时间戳字段,并使用初始“​​IF/THEN”语句禁用触发器,该语句包含时间戳以在提交后创建时间间隔,以便在不进行更正的情况下进行更正。让触发器真正触发。这可能吗?

最佳答案

出于好奇@drew,我会研究它,但我的结论/解决方案将涉及触发器定义中语义的轻微变化。这些行是 4 位数字的临时值,触发器将简单地定义为当所有新读数与旧读数不同时,旧读数将被传递到下一个表,依此类推。 “IF”和“END IF”语句将包含引用所有行的所有语句。因此,如果旧的行数字是 2500,新的行数字将简单地输入为 2501,并且轻微的偏移落在获取温度读数的仪器的误差范围内。这样,任何更改都可以在主表上进行,除非它是完整的更改,而不会影响存档表。这是一个实用但不优雅的解决方案,因为它忽略了 SQL 语言的复杂性和欣赏性,而我对 SQL 语言一开始就不太熟悉。我很幸运,这里允许有一定的误差范围。感谢你们两位的贡献...

新触发器:

begin
if
NEW.row1<>OLD.row1 then
update table2
set table2.row1 = OLD.row1
where table.id = OLD.ID;
and
(if?) NEW.row2<>OLD.row2 then
update table2
set table2.row2 = OLD.row2
where table2.id = OLD.ID;
.....
end if;
end

我希望在语义上答案有效,如果没有,我会弄清楚细节,直到它有效......但你明白了。

关于php - 提交后根据时间戳在时间间隔内禁用触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083265/

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