我目前有一个问题实现一个简单的任务,其中一个现有的客户的新工作,直到他们还清债务时才被批准。我认为这会很简单,直到我发现SQL-92断言在Oracle中不工作... ...SQL/Oracle 10g - 问题与断言
我环顾网络,看到有可能做同样的事情,但与触发器/检查约束。然而,我完全失去了如何实现这一目标。
我的数据库的结构,像这样:
Table invoice is in a one-to-many relationship with jobs
Table jobs is in a many-to-one relationship with client
目前我有:
CREATE TRIGGER check_debt
BEFORE UPDATE ON jobs
FOR EACH ROW
WHEN ((SELECT * FROM client WHERE clientNo =
(SELECT * FROM jobs WHERE jobNo =
(SELECT * FROM invoice WHERE status = 'Debt Owing'))))
COMMIT;
正如你所看到的,我不知道如何来模拟一个触发断言.. 。
任何帮助表示赞赏!
谢谢。
注意:我在练习使用SQL-92和SQL-99标准。
你能用文字解释你试图在这个触发器中断言什么吗?我很难理解这个触发器的目标是什么。这可能也有助于在这里定义四个表格('client','jobNo','invoice'和'jobs') –
对不起,实际上有3个表格(jobNo应该是工作......我的坏话)。基本上,我想断言,除非他们以前的工作发票已经支付(因此发票中的状态是“债务欠款”),否则不能从现有客户接受工作(客户有多个工作提议)。希望清除它更高技能 – tester