![](https://csdnimg.cn/release/download_crawler_static/86115918/bg6.jpg)
ALTER TABLE STORE
ADD (CONSTRAINT R_16 FOREIGN KEY (FNUM) REFERENCES FREEDERS(FNUM));
--添加外键约束
ALTER TABLE STORE
ADD (CONSTRAINT R_18 FOREIGN KEY (ANUM) REFERENCES CLERK(ANUM));
--添加外键约束
/* 在 CLERK 表上创建更新触发器,在 CLERK(被参照表)中更新记录时,若 STORE(参照表)
中有对应 ANUM 的记录,则拒绝执行更新操作。
*/
CREATE TRIGGER tD_CLERK AFTER DELETE ON CLERK for each row
-- ERwin Builtin 2010 年 12 月 28 日 4:13:58
-- DELETE trigger on CLERK
DECLARE NUMROWS INTEGER;
BEGIN
/* ERwin Builtin 2010 年 12 月 28 日 4:13:58 */
/* CLERK R/18 STORE on parent delete restrict */
/* ERWIN_RELATION:CHECKSUM="0000d432", PARENT_OWNER="", PARENT_TABLE="CLERK"
CHILD_OWNER="", CHILD_TABLE="STORE"
P2C_VERB_PHRASE="R/18", C2P_VERB_PHRASE="",
FK_CONSTRAINT="R_18", FK_COLUMNS="ANUM" */
SELECT count(*) INTO NUMROWS
FROM STORE
WHERE
/* %JoinFKPK(STORE,:%Old," = "," AND") */
STORE.ANUM = :old.ANUM;
IF (NUMROWS > 0)
THEN
raise_application_error(
-20001,
'Cannot delete CLERK because STORE exists.'
);
END IF;
-- ERwin Builtin 2010 年 12 月 28 日 4:13:58
END;
/
/* 在 CLERK 表上创建更新触发器,在CLERK(被参照表)中更新记录时,若造成了与 STORE
(参照表)中对应 ANUM 的不一致,则拒绝执行更新操作。
*/