使用Navicat 设定 sql 触发器

本文介绍如何在Navicat中设置SQL触发器,实现数据插入时自动更新另一表中的时间字段,包括年、月、日及周数。

本片博客讲述如何用naticat设定sql触发器,并且将类型为datatime的时间分割为年、月、日、今年的第几周。

一、建表

新建表aaa和bbb

表aaa字段:

表bbb字段:

二、设置触发器

我是在bbb表设置触发器,来关联aaa表改变数据

1、选中 bbb表 右击打开 设计表 ,选择触发器选项

2、添加触发器

名字是由自己起的,触发有两种选择 (After和Before),表示在此操作之前或者之后触发该触发器,然后选择是那种操作会触发该触发器。

例如

插入之后触发(如上图显示):

在下面的定义栏中写入触发操作,以begin开始,end结束。

中间写触发的sql语句,我写的触发器是当bbb表插入一条数据时,bbb表中的school字段插入aaa表中的name字段值,还把bbb表中的time字段分割为年、月、日、今年的第几周存入aaa表中

begin
insert into aaa(name,year_num,month_num,day_num,week_num) values(new.school,date_format(new.time,'%Y'),date_format(new.time,'%m'),date_format(new.time,'%d'),WEEK(new.time));
end

触发器中的sql语句会有NEW和OLD出现

NEW 表示 新插入的数据

OLD  表示 原来的数据, 所以当bbb表进行插入触发时不能使用OLD,因为没有原来的数据

3、效果展示

bbb表:

aaa表:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值