2017-04-10 29 views
0

我创造了这个触发了触发是为了防止保留预订使用删除SQL语句时被删除预订机票数据库。我有两个状态。一个用于保留的“R”,另一个是“C”用于取消。我的任务是确保保留预订不能被删除,如果用户试图删除一个,它提出的是在我的例子显示触发异常。删除预防触发不工作 - PostgreSQL的

我创造了这个触发器,它已成功地执行,但是当我通过删除保留预订状态为“R”运行,并说测试“查询成功返回:一个行受影响......”,这是不是我想。我希望它引发异常,而不是删除预订。

​​
+0

你需要一个'BEFORE DELETE'触发。 –

+0

@ J.Doe:在一个'BEFORE'触发器中,如果你返回NULL,'NEW'是'NULL'(没有“DELETE”的新记录),触发操作会中止。改为尝试'RETURN OLD'。 –

回答

1

这条线:

IF 'status' = 'r' THEN 

...字符串'status'比较字符串'r'(当然,他们永远不会是平等的......)。

比较status字符串'r'是这样的:

IF OLD.status = 'r' THEN