我正在测试日期时间特殊寄存器的以下行为(在此处说明)
如果使用 datetime 特殊寄存器的 SQL 语句位于触发器范围内的用户定义函数或存储过程中,则 Db2 使用触发 SQL 语句的时间戳来确定特殊寄存器值。
所以我创建了一个带有时间戳字段的表,一个存储过程(本机 sql)将相同的 10 行插入到表中,并且 tamestamp 列被赋予“当前时间戳”的值。然后我在其他表上创建了一个触发器(在插入触发器之后)。
结果是 10 行,时间戳增加。我希望时间戳与我的解释相同,存储过程在触发器的范围内。
你能帮我看看这句话是什么意思吗?
create trigger date_check
after insert on test
for each row mode db2sql
call date_sp2()
create procedure date_sp2()
language sql
BEGIN
declare i smallint default 0;
my_loop: LOOP
insert into empty_char values('Y','Y','Y','Y',current date, current timestamp);
SET I = I + 1;
IF I = 10 THEN LEAVE my_loop;
END IF;
END LOOP my_loop;
END