更新案例中的信号SQLSTATE
我不能在球场上尝试扳机,我有一个问题。我试着寻找答案,但没有成功。那么,有没有可能在DB2触发器的更新案例中放置一个“SIGNAL SQLSTATE…”呢 例如:更新案例中的信号SQLSTATE,sql,triggers,db2,sql-update,Sql,Triggers,Db2,Sql Update,我不能在球场上尝试扳机,我有一个问题。我试着寻找答案,但没有成功。那么,有没有可能在DB2触发器的更新案例中放置一个“SIGNAL SQLSTATE…”呢 例如: CREATE TRIGGER T1 [...] BEGIN ATOMIC UPDATE Table SET column = CASE WHEN [...] THEN SIGNAL SQLSTATE '70000' ('ERROR') ELSE [...] 提前感谢。CAS
CREATE TRIGGER T1
[...]
BEGIN ATOMIC
UPDATE Table
SET column =
CASE
WHEN [...]
THEN SIGNAL SQLSTATE '70000' ('ERROR')
ELSE
[...]
提前感谢。CASE表达式不能在UPDATE语句中执行语句。它只返回一个结果值。如果您想执行诸如SIGNAL SQLSTATE…
之类的语句,我想您可以这样使用它(不推荐也不测试):
但是,这样做可能更好:
IF ( [...condition] )
THEN SIGNAL SQLSTATE '70000' ('ERROR') ;
ELSE UPDATE Table SET column = [...value] ;
如果没有更详细的确切说明,就很难确定需要什么。将其作为结果表达式放在CASE表达式中,意味着您希望将列设置为等于
SIGNAL SQLSTATE“70000”(“ERROR”)
。这毫无意义,对!我认为这是一个可以接受的答案。谢谢。@user2338816请用您所写的作为评论写一个答案。
IF ( [...condition] )
THEN SIGNAL SQLSTATE '70000' ('ERROR') ;
ELSE UPDATE Table SET column = [...value] ;