博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《学习》11触发器
阅读量:6649 次
发布时间:2019-06-25

本文共 1765 字,大约阅读时间需要 5 分钟。

-------触发器-------- 

USE db;
SELECT FROM sss;

CREATE TABLE sssbak LIKE sss;

SHOW CREATE TABLE sss;
SHOW CREATE TABLE sssbak;
CREATE TABLE `sssbak` (
`sid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`sname` VARCHAR(10) NOT NULL,
`sscore` TINYINT(3) UNSIGNED DEFAULT NULL,
`saddress` VARCHAR(30) DEFAULT NULL,
`stel` BIGINT(20) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8

CREATE TABLE `sss` (
`sid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`sname` VARCHAR(10) NOT NULL,
`sscore` TINYINT(3) UNSIGNED DEFAULT NULL,
`saddress` VARCHAR(30) DEFAULT NULL,
`stel` BIGINT(20) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=MYISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8

sss 学生信息表

sssbak 学生补考表

TRUNCATE sss;

TRUNCATE sssbak;-- 清除表的内容
SELECT FROM sss;
SELECT FROM sssbak;
-- 建立触发器 建立的对象为 new
DELIMITER
CREATE TRIGGER tt1 AFTER INSERT ON sss FOR EACH ROW
BEGIN
DECLARE ss TINYINT;
SET ss=NEW.sscore;
IF ss60 THEN
INSERT INTO sssbak VALUES(NEW.sid,NEW.sname,NEW.sscore,NEW.saddress,NEW.stel);
END IF;
END
DELIMITER;

删除表sss中的元素 在sssbak中相应的元素也删除 删除的对象为 OLD

DELIMITER
CREATE TRIGGER tt2 AFTER DELETE ON sss FOR EACH ROW
BEGIN
DELETE FROM sssbak WHERE sid=OLD.sid;
END
DELIMITER;

修改 OLD 修改之前 NEW 修改之后
DELIMITER
CREATE TRIGGER tt3 AFTER UPDATE ON sss FOR EACH ROW
BEGIN
DECLARE newss TINYINT;
DECLARE oldss TINYINT;
SET newss=NEW.sscore;
SET oldss=old.sscore;
IF newss=60 THEN
DELETE FROM sssbak WHERE sid =NEW.sid;
ELSE -- sss新的分数小于60的时候
REPLACE INTO sssbak VALUES(NEW.sid,NEW.sname,NEW.sscore,NEW.saddress,NEW.stel);
END IF;
END
DELIMITER;

 

-- 使用触发器,实质性相关的操作时,自动触发的

INSERT INTO sss VALUES(NULL,'张三',30,'北京',18290438501);
INSERT INTO sss VALUES(NULL,'李四',90,'郑州',18290438501);

 

-- 删除触发器

DROP TRIGGER tt1;

-- 查看db数据库中所有的触发器

SHOW TRIGGERS FROM `db`;

转载地址:http://yquto.baihongyu.com/

你可能感兴趣的文章
android 读取SD卡文件
查看>>
Flatten Binary Tree to Linked List
查看>>
Spring(十二)使用Spring的xml文件配置方式实现AOP
查看>>
开源 java CMS - FreeCMS2.3会员个人资料
查看>>
smack 4.1.2+openfire 3.10.2i
查看>>
sqlserver 中EXEC和sp_executesql使用介绍
查看>>
Javascript- Javascript学习
查看>>
day 5.基本数据类型:字典(dict)
查看>>
python 机器学习之岭回归
查看>>
Centos7通过Docker安装Sentry(哨兵)
查看>>
加入收藏兼容ie和火狐
查看>>
Linux常用的网络命令
查看>>
树莓派蓝牙连接
查看>>
Android 网络编程
查看>>
设计师的视觉设计五项修炼
查看>>
转:: 刺鸟:用python来开发webgame服务端(4)
查看>>
十款被人忽视的堪称神器的软件【纯干货】
查看>>
ZOJ 3596Digit Number(BFS+DP)
查看>>
检测Java程序运行时间的2种方法(高精度的时间[纳秒]与低精度的时间[毫秒])...
查看>>
JAVA基础知识|集合
查看>>