DROP TABLE ENROLLMENT CASCADE CONSTRAINTS;
DROP TABLE SECTION CASCADE CONSTRAINTS;
CREATE TABLE SECTION
(
SectionID CHAR(5),
Course VARCHAR2(7),
Students NUMBER(2,0) DEFAULT 0,
CONSTRAINT PK_SECTION
PRIMARY KEY (SectionID)
);
CREATE TABLE ENROLLMENT
(
SectionID CHAR(5),
StudentID CHAR(7),
CONSTRAINT PK_ENROLLMENT
PRIMARY KEY (SectionID, StudentID),
CONSTRAINT FK_ENROLLMENT_SECTION
FOREIGN KEY (SectionID)
REFERENCES SECTION (SectionID)
);
INSERT INTO SECTION (SectionID, Course) VALUES ( '12345', 'CSC 355' );
INSERT INTO SECTION (SectionID, Course) VALUES ( '22109', 'CSC 309' );
INSERT INTO SECTION (SectionID, Course) VALUES ( '99113', 'CSC 300' );
INSERT INTO SECTION (SectionID, Course) VALUES ( '99114', 'CSC 300' );
SELECT * FROM SECTION;
COMMIT;
CREATE TRIGGER AddStudent AFTER INSERT ON ENROLLMENT
BEGIN
DBMS_OUTPUT.PUT_LINE('DONE');
END;
我试图看到的是触发器是否被触发以及当我运行INSERT INTO注册VALUES('12345','1234567')这样的脚本时;
我没有输出,只是“插入1行”,但是我没有“完成”使得触发器未触发的事情。
答案 0 :(得分:0)
插入触发器唯一可观察到的效果是:
DBMS_OUTPUT.PUT_LINE('DONE');
这只是将消息放入调试缓冲区。要查看结果,您需要启用DBMS输出。
您可以在SQL Developer中通过“视图”菜单执行此操作,选择“Dbms输出”,然后单击绿色" +"按钮。然后运行你的代码,你应该看到输出,如果有的话。
如果您使用SQL * Plus,则可以运行SET SERVEROUT ON
。