一、题目要求
创建职工表以及职工工资表
职工表字段:职工工号,姓名,性别,年龄
工资表字段:编号自增,职工工号,基础工资10000
通过触发器实现:
对职工进行添加时 工资表中也要体现当前职工的信息
对职工进行修改时 工资表中也要一并修改当前职工的信息
对职工进行解聘时 工资表中也要一并删除当前员工的工资信息
二、创建表
2.1创建职工表
CREATE TABLE tab1(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
sex ENUM('m','f'),
age INT
);
2.2创建职工工资表
CREATE TABLE tab2(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
salary DOUBLE(10,2)
);
三、创建触发器
3.1创建触发器1 INSERT 对职工进行添加时 工资表中也要体现当前职工的信息
DELIMITER $
CREATE TRIGGER tab1_insert_trigger
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
INSERT INTO tab2 VALUES (NULL,new.name,10000);
END$
//添加职工信息验证
INSERT INTO tab1 VALUES (1,'张三','f',18)$
INSERT INTO tab1 VALUES (2,'hh','m',22)$
INSERT INTO tab1 VALUES (3,'李四','f',30)$
3.2 创建触发器2 UPDATE 对职工进行修改时 工资表中也要刷新当前职工的信息
CREATE TRIGGER tab1_update_trigger
AFTER UPDATE ON tab1
FOR EACH ROW
BEGIN
UPDATE tab2 SET name = new.name WHERE name = old.name;
END$
//测试用户修改
UPDATE tab1 SET name = 'FF' WHERE name = '李四'$
3.3创建触发器3 DELETE 对职工进行删除时 工资表中也要刷新当前职工信息
CREATE TRIGGER tab1_delete_trigger
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
DELETE FROM tab2 WHERE name = old.name;
END$
//用户测试
DELETE FROM tab1 WHERE name = '张三'$