PL/SQL を使用してライブラリ インフォテインメント システムを作成しようとしています。皆さんが推測する前に、はい、それは宿題ですが、私は一生懸命努力し、十分に努力した後にのみここで質問をしました.
基本的に、テーブルはほとんどありません。そのうちの 2 つは
Issue(Bookid, borrowerid, issuedate, returndate)
と
Borrower(borrowerid, name, status)
です。
表のステータスはBorrower
いずれかになります'student' or 'faculty'
。トリガーを使用して制限を実装する必要がstudent
ありfaculty
ます.
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;