【发布时间】:2020-08-14 19:22:27
【问题描述】:
我有一张桌子
CREATE TABLE borrow_document1 (
id_borrow INT,
id_client INT,
id_document INT,
isReturned number(1),
CONSTRAINT PK_document PRIMARY KEY ( id_borrow));
如果没有归还(如果isReturned 等于0),我想防止借用同一个文档。
我正在尝试创建一个trigger 来完成这项工作,但我不知道如何访问表中的现有值。这是我所做的:
create or replace trigger check_borrow
BEFORE INSERT on borrow_document1
for each row when(new.id_document = id_document)
BEGIN
IF ISRETURNED = 0 THEN
raise_application_error(-20111,'document is borrowed');
end if;
END;
我知道这是错误的,但我只是想向您展示我需要做什么。问题是编译此触发器会返回错误,因为 id_document 和 isreturned 未声明。
我的表中可能还有许多具有相同 id 的文档,但最多有一个是借来的,因为我需要保留借来的文档的踪迹。
任何帮助将不胜感激。
【问题讨论】:
标签: sql oracle oracle11g triggers oracle-sqldeveloper