Oracle触发器介绍,简单给个增删的例子
时间: 2024-09-21 12:01:58 浏览: 41
Oracle触发器是一种特殊的存储过程,它会在特定的数据操作(如INSERT、UPDATE、DELETE)发生时自动执行。它们主要用于数据库的业务规则验证、数据一致性维护等。以下是创建两个简单的Oracle触发器示例:
1. **增(INSERT)触发器**:
假设我们有一个`Orders`表,我们想要在插入新订单时自动更新`OrderTotal`字段,这是累积所有行的`Quantity`乘以`UnitPrice`。
```sql
CREATE OR REPLACE TRIGGER trg_insert_order
AFTER INSERT ON Orders
FOR EACH ROW
BEGIN
UPDATE Orders
SET OrderTotal = NEW.Quantity * NEW.UnitPrice
WHERE OrderID = :NEW.OrderID;
END;
/
```
在这个例子中,`NEW`是一个保留字,代表新插入的数据行。
2. **删(DELETE)触发器**:
如果我们希望在删除一条记录时,同时也从相关的`OrderDetails`表中删除与其关联的信息,可以创建这样的删除触发器:
```sql
CREATE OR REPLACE TRIGGER trg_delete_order_detail
BEFORE DELETE ON Orders
FOR EACH ROW
BEGIN
DELETE FROM OrderDetails
WHERE OrderID = :OLD.OrderID; -- 使用OLD表示被删除的行
END;
/
```
阅读全文