trigger.md 897 字节
Newer Older
M
Mars Liu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
# 触发器

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

```postgresql
create table employee(
    id serial primary key ,
    name text,
    dept text,
    salary money,
    meta jsonb default '{}'::jsonb
);

create table budget(
    id serial primary key ,
    dept text,
    amount money
)
```

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

## 答案

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

## 选项

### A

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

### B

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

### C

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