我正在嘗試使用PL/SQL製作庫信息娛樂系統。在你們任何人推測之前,是的,這是一項家庭作業,但我努力嘗試並在努力嘗試之後在這裏提出問題。PL/SQL觸發器庫信息娛樂系統
基本上我有幾張表,其中有兩張是: Issue(Bookid, borrowerid, issuedate, returndate)
和 Borrower(borrowerid, name, status)
。
Borrower
表中的狀態可以是'student' or 'faculty'
。我必須使用觸發器實施限制,根據student
,我可以在任何時間點和任何時間點根據faculty
發行2本書,3本書。
我完全是PL/SQL的新手。這可能很容易,我有一個如何去做的想法。這是我能做的最好的。請幫我找到設計/編譯器錯誤。
CREATE OR REPLACE TRIGGER trg_maxbooks
AFTER INSERT ON ISSUE
FOR EACH ROW
DECLARE
BORROWERCOUNT INTEGER;
SORF VARCHAR2(20);
BEGIN
SELECT COUNT(*) INTO BORROWERCOUNT
FROM ISSUE
WHERE BORROWER_ID = :NEW.BORROWER_ID;
SELECT STATUS INTO SORF
FROM BORROWER
WHERE BORROWER_ID = :NEW.BORROWER_ID;
IF ((BORROWERCOUNT=2 AND SORF='STUDENT')
OR (BORROWERCOUNT=3 AND SORF='FACULTY')) THEN
ROLLBACK TRANSACTION;
END IF;
END;
非常感謝您的努力。只有一個問題 - 在任何表格中都沒有列爲「borrowercount」。我懷疑這是否會奏效。 –
你應該採取計數,並將其作爲參數:)這不是一個簡單的答案,但只有一個模型 – SriniV