【发布时间】:2021-05-23 08:43:11
【问题描述】:
我的桌子是
Book
CREATE TABLE Book
(
Bk_id CHAR(06) NOT NULL,
BK_Name VARCHAR(60) NOT NULL,
Author VARCHAR(30) NOT NULL,
Price NUMERIC(03) NOT NULL,
No_of_copies NUMERIC(02) NOT NULL,
CONSTRAINT Book_PK PRIMARY KEY (Bk_id)
);
Location
CREATE TABLE Location
(
Loc_id CHAR(06) NOT NULL,
Loc_Name VARCHAR(15) NOT NULL,
Stock NUMERIC(02) NOT NULL,
CONSTRAINT Location_PK PRIMARY KEY (Loc_id)
);
Customer
CREATE TABLE Customer
(
Cus_id CHAR(06) NOT NULL,
Cus_Name VARCHAR(25) NOT NULL,
Gender VARCHAR(06) NOT NULL,
TP CHAR(12) NOT NULL,
Address VARCHAR(40) NOT NULL,
CONSTRAINT Customer_PK PRIMARY KEY (Cus_id)
);
Copy
CREATE TABLE Copy
(
Copy_id CHAR(06) NOT NULL,
Bk_id CHAR(06) NOT NULL,
Loc_id CHAR(06) NOT NULL,
Opinion CHAR(02) NOT NULL,
CONSTRAINT pk_Copy PRIMARY KEY (Copy_id),
CONSTRAINT fk_Copy_Bk_id_FK FOREIGN KEY (Bk_id) REFERENCES Book(Bk_id),
CONSTRAINT fk_Copy_Loc_id_FK FOREIGN KEY (Loc_id) REFERENCES Location(Loc_id)
);
Borrow
CREATE TABLE Borrow
(
Cus_evo NUMERIC(02) NOT NULL,
B_Date DATE NOT NULL,
R_Date DATE NOT NULL,
Fee NUMERIC(03) NOT NULL,
Copy_id CHAR(06) NOT NULL,
Cus_id CHAR(06) NOT NULL,
CONSTRAINT pk_Borrow PRIMARY KEY (Cus_id,Copy_id),
CONSTRAINT fk_Borrow_Copy_id_FK FOREIGN KEY (Copy_id) REFERENCES Copy(Copy_id),
CONSTRAINT fk_Borrow_Cus_id_FK FOREIGN KEY (Cus_id) REFERENCES Customer(Cus_id)
);
Audit_Table
Create table Audit_Table
(
Cus_Name VARCHAR(25) NOT NULL,
BK_Name VARCHAR(60) NOT NULL,
B_Date DATE NOT NULL,
Loc_Name VARCHAR(15) NOT NULL,
Cus_evo NUMERIC(02) NOT NULL
);
如果客户给出零评价Cus_evo=0,他们的借款详情(Cus_Name from CUSTOMER、BK_Name from Book、B_Date from Borrow、Loc_Name来自Location 和Cus_evo 来自Borrow 的副本)必须放在审计表中。
我创建的触发器:
CREATE OR REPLACE TRIGGER "AUDIT_TRIGGER"
BEFORE
INSERT OR UPDATE ON Borrow
FOR EACH ROW
WHEN (new.Cus_evo = 0)
BEGIN
INSERT INTO Audit_Table
VALUES (:OLD.Cus_Name, :OLD.BK_Name, :OLD.B_Date, :OLD.Loc_Name, :OLD.Cus_evo);
END;
/
我收到此错误:
错误:TRIGGER AUDIT_TRIGGER
行/列:3/9 PLS-00049:错误的绑定变量“OLD.CUS_NAME”
行/列:3/24 PLS-00049:错误的绑定变量“OLD.BK_NAME”
行/列:3/51 PLS-00049:绑定变量错误“OLD.LOC_NAME”
【问题讨论】:
标签: sql oracle plsql triggers oracle19c