trigger.md 889 字节
Newer Older
M
Mars Liu 已提交
1 2 3 4
# 触发器

SmartMarket 公司的OA数据库中包含以下结构:

M
Mars Liu 已提交
5
```mysql
M
Mars Liu 已提交
6 7
create table employee(
    id serial primary key ,
M
Mars Liu 已提交
8 9 10
    name varchar(256),
    dept varchar(256),
    salary decimal(12, 4)
M
Mars Liu 已提交
11 12 13 14
);

create table budget(
    id serial primary key ,
M
Mars Liu 已提交
15
    dept varchar(256),
M
Mars Liu 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
    amount money
)
```

我们省略了无关的内容。当某个员工的工资发生变动时,我们要修改他所在部门的预算。那么以下哪个选项可以解决问题?

## 答案

在 employee 表添加一个 after 触发器,当员工信息变动时,重算相关部门的预算。

## 选项

### A

在 budget 表添加触发器,当员工信息变动时,重算相关部门的预算。

### B

将预算总额字段变成计算列,通过统计员工工资生成。

### C

将员工信息表的工资字段设置为部门预算总额的外键引用字段,并设置级联更新。