SQL触发器练习

创建职工表以及职工工资表

职工表字段:工号,姓名,性别,年龄

工资表字段:编号自增,职工工号,基础工资10000

通过触发器实现:

对职工进行添加时 工资表中也要体现当前职工的信息

对职工进行修改时 工资表中也要一并修改当前职工的信息

对职工进行解聘时 工资表中也要一并删除当前员工的工资信息

建立职工表 职工工资表
sql 复制代码
#职工表
CREATE TABLE worker (
	id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
	name VARCHAR(40) NOT NULL,
	sex VARCHAR(4) NOT NULL,
	age INT NOT NULL
);

#职工工资表
CREATE TABLE wage (
	id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
	name VARCHAR(20) NOT NULL,
	salary DOUBLE(10,2)
);
建立添加触发器
sql 复制代码
CREATE TRIGGER worker_insert_trigger
	AFTER INSERT ON worker
	FOR EACH ROW
	BEGIN
		INSERT INTO wage VALUES (NULL,new.name,10000);
	END;

建立修改触发器

sql 复制代码
CREATE TRIGGER worker_update_trigger
	AFTER UPDATE ON worker
	FOR EACH ROW
	BEGIN
		UPDATE wage SET name = new.name WHERE name = old.name;
	END;
建立删除触发器
sql 复制代码
CREATE TRIGGER worker_delete_trigger
	AFTER DELETE ON worker
	FOR EACH ROW
	BEGIN
		DELETE FROM wage WHERE name = old.name;
	END;
相关推荐
廿一夏7 小时前
MySql存储引擎与索引
数据库·sql·mysql
lzhdim9 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室9 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
TDengine (老段)9 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
YOU OU10 小时前
Spring IoC&DI
java·数据库·spring
Muscleheng11 小时前
Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错
数据库·postgresql
罗超驿12 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
jran-12 小时前
Redis 命令
数据库·redis·缓存
小江的记录本13 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
June`13 小时前
多线程redis下如何解决aof重写和rdb持久化的数据一致性问题
数据库·redis·缓存