ORACLE创建触发器
时间: 2023-11-19 20:27:40 浏览: 215
要在 Oracle 数据库中创建触发器,可以使用以下语法:
```sql
CREATE [ OR REPLACE ] TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
[REFERENCING OLD AS old NEW AS new]
[FOR EACH ROW]
WHEN (condition)
DECLARE
-- 声明变量
BEGIN
-- 触发器逻辑
END;
```
其中:
- `trigger_name` 为触发器名称;
- `BEFORE` 或 `AFTER` 为触发时机;
- `INSERT`、`UPDATE` 或 `DELETE` 为触发事件;
- `table_name` 为关联的表名;
- `REFERENCING` 子句用于给 `OLD` 和 `NEW` 关键字指定别名;
- `FOR EACH ROW` 表示对每一行都触发一次,如果不指定,则表示对整个操作只触发一次;
- `WHEN` 子句用于指定触发条件;
- `DECLARE` 子句用于声明变量;
- `BEGIN` 和 `END` 之间为触发器的逻辑部分。
例如,以下是一个简单的触发器示例,它在插入数据时自动将创建时间填充到 `create_time` 字段中:
```sql
CREATE OR REPLACE TRIGGER trg_insert_time
BEFORE INSERT
ON my_table
FOR EACH ROW
BEGIN
:new.create_time := SYSDATE;
END;
```
阅读全文