create table t_class_info(
id int(8),
t_no int(10),
t_name varchar(20),
t_addr varchar(60)
)
如下图所示:
第二步,查看表t_class_info描述,利用命令:
desc t_class_info
如下图所示:
第三步,创建触发器info_tri,触发时间是在向表t_class_info插入数据后,触发事件是向表class_info中插入一条记录,如下图所示:
第四步,创建数据库表class_info,利用命令:
create table class_info(
id int(8),
t_no int(10),
t_name varchar(20),
t_addr varchar(60)
)
如下图所示:
第五步,查看class_info数据库表结构,利用命令:
desc class_info
如下图所示:
6
第六步,查看数据库表t_class_info和class_info数据,发现两张没有数据,这时调用插入语句,向数据库表t_class_info里插入一条记录,并查看数据库表class_info是否新增记录,如下图所示:
我的表结构如下:create table students(id int auto_increment,
name varchar(10) not null DEFAULT '',
age int not null DEFAULT 0,
sex varchar(2) not null DEFAULT '',
studId varchar(18) not null DEFAULT '',
PRIMARY KEY (`id`))
触发器:
DELIMITER $$
CREATE TRIGGER `students_insert` BEFORE INSERT ON `students`
FOR EACH ROW
BEGIN
if mod(substring(new.studId,17,1),2)=0 then
set new.sex = '女'
else
set new.sex = '男'
end if
END
$$
DELIMITER
以上程序已测试通过,
另外友情提醒一下,在触发器中处理这个判断,效率不高,最好在程序中处理这部分逻辑.
使用Mysql新建触发器的方法:1、首先,需要确定自己的Mysql数据库的版本,因为my sql数据库是从5.0.2版本才开始支持触发器的。
2、在电脑的dos命令界面中输入 mysql --version,来获取mysql的版本号,注意version的两个横线和之前的mysql是有一个空格的。
3、上一步获取了mysql版本号,就开始建立触发器。采用以视图加代码的方式创建,在数据表中找到要执行删除 *** 作的表,然后右键设计表
4、这样就打开了表的设计页面,可以看到有一个触发器选项卡,点击“触发器”
5、可以看到对应的选项,在名里面添加需要新建的触发器的名字,在触发选项中选择before或者after,然后在插入、更新、删除三个选项中勾选一个。
6、这样们就建立了一个名为“datri”的触发器,在删除 *** 作执行之后触发
7、然后在下面的定义下面的框中输入需要执行的 *** 作。然后点击sql预览,可以看到整个触发器的代码
8、最后就是保存了,由于做的是触发器,保存之后,在执行删除 *** 作时,这个触发器才相当于被执行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)