【发布时间】:2019-07-19 01:58:12
【问题描述】:
第一个要求是确保我们在这个城市只有一个分店, Banch (idBranch(PK), city) 用于更新和插入
我的想法是创建一个包含第一个的所有数据的临时表,这样我就可以逃避 ora 错误这是我编写的代码,我正面临错误 PL/SQL: ORA-00903 和我在这种情况下,我不太确定一个触发器是否可以完成工作,因为它应该可以用于插入和更新。我需要你的建议,谢谢。
` CREATE TABLE TEMP_BRANCH AS SELECT NumBranch, CITY FROM BRANCH;
CREATE OR REPLACE TRIGGER checkUniqueBranchPerCity
BEFORE INSERT OR UPDATE ON BRANCH
REFERENCING
NEW AS nextLine
FOR EACH ROW
BEGIN
LOCK TABLE TEMP_BRANCH IN ROW SHARE MODE;
FOR line IN (SELECT * FROM TEMP_BRANCH) LOOP
IF :nextLine.City = line.City THEN
RAISE_APPLICATION_ERROR;
END IF;
END LOOP;
DELETE * FROM TEMP_BRANCH;
END;
/ `
【问题讨论】: