编写一个触发器,该触发器在向dept表做insert、update和delete 操作之前被触发,要求在触发器执行时输出对dept表所做的具体操作。(10分)
时间: 2024-11-05 10:26:36 浏览: 9
在数据库设计中,触发器是一种特殊的存储过程,它们会在特定的数据操作(如INSERT, UPDATE, DELETE等)发生时自动执行。在SQL中,你可以创建一个DDL(Data Definition Language)触发器来满足这个需求。以下是创建一个基本的Oracle SQL触发器的例子:
```sql
CREATE OR REPLACE TRIGGER dept_operation_trigger
AFTER INSERT OR UPDATE OR DELETE ON dept
FOR EACH ROW
BEGIN
IF INSERTING THEN
DBMS_OUTPUT.PUT_LINE('新记录插入: ' || :NEW.dept_name);
ELSIF UPDATING THEN
DBMS_OUTPUT.PUT_LINE('记录已更新: ' || :OLD.dept_name || ' -> ' || :NEW.dept_name);
ELSE
DBMS_OUTPUT.PUT_LINE('记录已删除: ' || :OLD.dept_name);
END IF;
END;
/
```
在这个例子中,`dept_operation_trigger`是一个名为`dept`的表在做INSERT、UPDATE或DELETE操作后的触发器。`FOR EACH ROW`表示每个受影响的行都会执行触发器内的逻辑。`DBMS_OUTPUT.PUT_LINE`用于在控制台上输出一条消息,说明进行了何种操作以及涉及的具体信息。
注意:实际运行时,你需要连接到数据库并启用日志功能(例如在Oracle中使用`DBMS_OUTPUT.PUT_LINE`),以便查看触发器的操作日志。
阅读全文