trigger.md 896 字节
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
    name varchar(256),
M
Mars Liu 已提交
9
    dept varchar(64),
M
Mars Liu 已提交
10
    salary decimal(12, 4)
M
Mars Liu 已提交
11 12 13 14
);

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

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

## 答案

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

## 选项

### A

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

### B

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

### C

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