You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Derby创建自动填充日期的INSERT触发器报错:表/视图'NEW'不存在

解决Derby自动填充插入日期的触发器问题

我来帮你搞定这个Derby触发器的问题!你遇到的报错主要是触发器的时机和语法用错了,Derby在处理插入时自动赋值有特定的写法,我给你梳理清楚:

错误原因分析

  • 触发器时机不对:你用了AFTER INSERT,这时候新行已经被写入表中了,没法再通过NEW引用修改它;得用BEFORE INSERT,这样才能在插入行之前给字段赋值。
  • 语法误用:Derby里不需要写UPDATE NEW SET...这种语句,在BEFORE INSERT触发器里,直接给NEW对象的字段赋值就行。

正确的触发器语句

CREATE TRIGGER AddUserSessionDate
BEFORE INSERT ON Usersession
REFERENCING NEW AS NEW
FOR EACH ROW
MODE DB2SQL
SET NEW.session_date = CURRENT_DATE;

简单说明

  • BEFORE INSERT:指定在插入操作执行前触发,这时候我们可以修改即将插入的行数据。
  • SET NEW.session_date = CURRENT_DATE:直接把当前日期赋值给新行的session_date字段,不需要额外的UPDATE操作。

执行这个语句后,每次往Usersession表插入数据时,session_date字段都会自动填充为当前日期啦。

内容的提问来源于stack exchange,提问作者MadMax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:24:28