SQL41 构造一个触发器audit_log

本文最后更新于:2022年4月9日 中午


题目描述

构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。

1
2
3
4
5
6
7
8
9
10
CREATE TABLE employees_test(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);

CREATE TABLE audit(
EMP_no INT NOT NULL,
NAME TEXT NOT NULL);

输入描述

输出描述

题解

1
2
3
4
create trigger audit_log after insert on employees_test
begin
insert into audit values(new.id,new.name);
end;

备注:

  1. 创建触发器使用语句:CREATE TRIGGER trigname;

  2. BEFOREAFTER 来指定在执行后面的SQL语句之前或之后来触发TRIGGER;

    使用语句:BEFORE/AFTER [INSERT/UPDATE/ADD] ON tablename

  3. 触发器执行的内容写在 BEGIN与END 之间;

  4. 可以使用 NEWOLD 关键字访问触发后或触发前 2 中对应的 tablename 的相关列的值;

参考文章:

参考 [ciphersaw] 的解答

SQLite 触发器:https://www.runoob.com/sqlite/sqlite-trigger.html