数据库练习三

目标:

创建职工表以及职工工资表
职工表字段:工号,姓名,性别,年龄
工资表字段:编号自增,职工工号,基础工资10000,通过触发器实现:
对职工进行添加时 工资表中也要体现当前职工的信息                                                                    对职工进行修改时 工资表中也要一并修改当前职工的信息
对职工进行解聘时工资表中也要一并删除当前员工的工资信息

1.创建表

1.1创建职工表

CREATE TABLE Workers (
WorkerID INT PRIMARY KEY AUTO_INCREMENT COMMENT '工号',
Name VARCHAR(255) COMMENT '姓名',
Sex ENUM('W','M') COMMENT '性别',
Age INT COMMENT '年龄'
);

1.2创建职工工资表

CREATE TABLE Wages (
ID INT PRIMARY KEY AUTO_INCREMENT COMMENT '编号',
WorkerID INT NOT NULL COMMENT '职工工号',
Salary DOUBLE(10,2) COMMENT '工资',
FOREIGN KEY(WorkerID) REFERENCES Workers(WorkerID)
);

2.实现触发器

DELIMITER $$
CREATE TRIGGER WorkersInsertRecord
AFTER INSERT ON Workers
FOR EACH ROW
BEGIN
INSERT INTO Wages VALUES (NULL,new.WorkerID,10000);
END
$$
DELIMITER ;

3.添加

DELIMITER $$
CREATE TRIGGER WorkerUpdateRecord
AFTER UPDATE ON Workers
FOR EACH ROW
BEGIN
UPDATE Wages SET WorkerID = new.WorkerID WHERE WorkerID = old.WorkerID;
END
$$
DELIMITER ;

更新:UPDATE Workers SET WorkerID = '10' WHERE WorkerID ='3';

4.修改

DELIMITER $$
CREATE TRIGGER WorkerupdateRecord
AFTER UPDATE ON worker
FOR EACH ROW
BEGIN
UPDATE Wages SET WorkerID = new.WorkerID WHERE WorkerID = old.WorkerID;
END;
$$
DELIMITER ;

更新:UPDATE Workers SET WorkerID = '10' WHERE WorkerID ='3';

5.解聘(删除)

DELIMITER $$
CREATE TRIGGER WorkersDeleteRecord
AFTER DELETE ON Workers
FOR EACH ROW
BEGIN
DELETE FROM Wages WHERE WorkerID = old.WorkerID;
END
$$
DELIMITER ;

更新:DELETE FROM Workers WHERE WorkerID = '2';
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值