我不能在场上试试TRIGGER,我有一个问题。我试过找不到答案的答案。那么,是否可以设置一个" SIGNAL SQLSTATE ..."在DB2 TRIGGER的UPDATE CASE中?
例如:
CREATE TRIGGER T1
[...]
BEGIN ATOMIC
UPDATE Table
SET column =
CASE
WHEN [...]
THEN SIGNAL SQLSTATE '70000' ('ERROR')
ELSE
[...]
提前谢谢。
答案 0 :(得分:1)
CASE-expression 无法在UPDATE语句中执行语句。它只返回结果值。如果你想执行SIGNAL SQLSTATE...
之类的语句,我想你可能会像这样使用它(不推荐也不测试):
IF ( CASE WHEN [...condition] THEN true ELSE false END )
THEN SIGNAL SQLSTATE '70000' ('ERROR') ;
ELSE UPDATE Table SET column = [...value] ;
但是,这样做可能更好:
IF ( [...condition] )
THEN SIGNAL SQLSTATE '70000' ('ERROR') ;
ELSE UPDATE Table SET column = [...value] ;
如果没有更详细的确切意图,很难确定需要什么。