Db2 意外的标记;创建触发器

Db2 意外的标记;创建触发器,db2,Db2,请帮助我,这是错误的 意外标记“创建触发器TRG\u EFMREFNO 在“声明开始”之后找到“BEFOR”。预期的令牌可能包括:“”。。SQLCODE=-104,SQLSTATE=42601,DRIVER=4.12.79 在“END”之后发现意外标记“END-OF-STATEMENT”。预期的令牌可能包括:“JOIN”。。SQLCODE=-104,SQLSTATE=42601,DRIVER=4.12.79 请给出错误的解决方案这里有两件事- 1) 当“;”字符是SQL语句的一部分时,有必要使用

请帮助我,这是错误的

意外标记“创建触发器TRG\u EFMREFNO
在“声明开始”之后找到“BEFOR”。预期的令牌可能包括:“
”。。SQLCODE=-104,SQLSTATE=42601,DRIVER=4.12.79

在“END”之后发现意外标记“END-OF-STATEMENT”。预期的令牌可能包括:“JOIN
”。。SQLCODE=-104,SQLSTATE=42601,DRIVER=4.12.79


请给出错误的解决方案

这里有两件事-

1) 当“;”字符是SQL语句的一部分时,有必要使用其他字符来终止该语句。我通常使用“@”。要告诉“db2”命令您选择了不同的字符,请使用

CREATE TRIGGER TRG_EFMREFNO 
   BEFORE 
   INSERT ON FEEDBACK_CASE_TB 
   FOR EACH ROW 
   BEGIN 
   SELECT SEQ_EFMREFNO.NEXTVAL INTO:NEW.EFMREFNO FROM DUAL;
   END;
或者如果您想从文件中读取

db2 -td@

在CREATETABLE语句中,可能还有其他方法将sequence与default子句一起使用,这将完成相同的任务:

否,我正在直接使用trigeer。实际上,我将为我的项目创建数据库。你能为我提供任何解决方案吗?请帮忙。我的所有工作都依赖于此。嘿,它不工作,它也不允许在结尾处出现??请解决我的问题此解决方案不可行。。。。。你能为这个问题提出解决方案吗?我不完全确定你在问什么。我确实创建了表和序列,并测试了语句。如何使用“db2”命令或“control center”之类的GUI工具运行create trigger语句。不幸的是,我不能在这里讲授UML,但我可以尝试回答DB2特定的问题和一般的SQL问题。我看不到图表中的内容,也不知道数据库中有哪些表。请记住,我不是IBM的员工,但我是一名私人DB2顾问,周日早上6:00在星巴克阅读他的电子邮件。我想到了控制中心——您可以在窗口底部设置行终止字符。在这张照片中,请参见窗口底部的“;”——将其更改为“@”。这相当于命令行版本的“db2-td@”语法。
db2 -td@ -f <somefile>
CREATE TRIGGER TRG_EFMREFNO 
   BEFORE 
   INSERT ON FEEDBACK_CASE_TB 
   REFERENCING NEW AS N
   FOR EACH ROW 
   BEGIN 
       SET N.EFMREFNO = SEQ_EFMREFNO.NEXTVAL;
   END
@