簡體   English   中英

SQL-PL觸發器編譯錯誤

[英]SQL-PL trigger compilation error

我正在嘗試創建一個觸發器,當我們從 nm_employees 表中刪除值時,它會將值輸入到表中。 我已經編寫了觸發器,但是我收到了 PL 語句的編譯錯誤。 有任何想法嗎?

CREATE TABLE nm_departments(
dept2 varchar(20),
CONSTRAINT empPK PRIMARY KEY (dept2)
);

CREATE TABLE nm_employees(
name varchar(20),
dept varchar(20),
CONSTRAINT departments FOREIGN KEY (dept) REFERENCES nm_departments (dept2)ON DELETE     CASCADE
);

CREATE TABLE terminated_employees(
te_name varchar(20),
te_dept varchar(20)
);

CREATE OR REPLACE TRIGGER DeleteCustomer
BEFORE DELETE ON nm_employees
FOR EACH ROW
BEGIN
INSERT INTO terminated_employees (te_name,te_dept)
VALUES(:Old.te_name, :Old.te_dept);
END DeleteCustomer;

這將編譯,如果您在 *nm_employees* 上編寫觸發器,那么這將是您必須編寫的代碼

 CREATE TABLE nm_departments(
    dept2 varchar(20),
    CONSTRAINT empPK PRIMARY KEY (dept2)
    );

CREATE TABLE nm_employees(
name varchar(20),
dept varchar(20),
CONSTRAINT departments FOREIGN KEY (dept) REFERENCES nm_departments (dept2)ON DELETE     CASCADE
);

CREATE TABLE terminated_employees(
te_name varchar(20),
te_dept varchar(20)
);

CREATE OR REPLACE TRIGGER DeleteCustomer
BEFORE DELETE ON nm_employees
FOR EACH ROW
BEGIN
INSERT INTO terminated_employees (te_name,te_dept)
VALUES(:Old.name, :Old.dept);
END DeleteCustomer;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM