数据库触发器怎么写
数据库触发器是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,在当我们在做用户模块的表设计的时候,建了联用户信息表(t_user)和账号表(t_aount),其中账号表(t_aount)用来进行账号的注册 ,密码的修改等操作,而用户表(t_user)则用来存储用户的基本信息(比如姓名,年龄等),通常我们会在 t_user中创建外键(userid)进行关联t_aount以保证每个账号下对应一个用户信息,当账号(t_aount)注册成功,这时则可以使用数据库触发器来实现在用户(t_user)中实时地、准确地添加相应信息,所以是一个可以提高我们处理数据的工具,小编就来给大家介绍一个简单的数据库触发器的写法。
语法
CREATE
TRIGGER `jony_keer`.`s_aount` AFTER INSERT
ON `jony_keer`.`t_aount`
FOR EACH ROW BEGIN
INSERT INTO `t_user`(`userid`,`cellphone`,`aount_psd`) VALUES (new.`aount_id`,new.`cellphone`,new.`aount_psd`);
END$$
解析
TRIGGER 触发器
`jony_keer`.`s_aount` 触发器名称,jony_keer是我的数据库名字,s_aount 才是实际的触发器名称
AFTER 表示执行条件,有 BEFORE(之前 )AFTER(之后)
INSERT ON 表示在执行了插入操作 有INSERT/UPDATE/DELETE 三种
`jony_keer`.`t_aount` 接下来的这个是表示触发器所在的表(可以理解为触发器在t_aount 表插入一组出具后执行)
FOR EACH ROW BEGIN 固定语法,后面跟你要做的事情例如我要做的事情是在t_user表中插入
`userid`,`cellphone`,`aount_psd` 三个记录
INSERT INTO `t_user`(`userid`,`cellphone`,`aount_psd`) VALUES (new.`aount_id`,new.`cellphone`,new.`aount_psd`);
其中new是t_aount 表中插入的数据 ,我们把 t_aount 表中插入的 aount_id cellphone aount_psd 赋值给t_user表中的 userid cellphone aount_psd ,这样一个简单的触发器就做好了。
以下是具体的表结构
t_aount
t_user
可以看到我们两个表中目前还没有数据,接下来我们要给表t_aount中添加一组数据,看看t_user表是否会给我们带来惊喜,这里我已经做好了程序接口,只需要调用一下就好了。
/
注册
@param cellphone
@param psd
@return
/
@RequestMappg(value = "register", method = RequestMethod.POST)
@ResponseBody
public ResponseModel registerController(@RequestParam(value = "cellphone", required = true) Strg cellphone, @RequestParam(value = "psd", required = true) Strg psd) {
return service.sertRegister(cellphone,psd);
}
/
插入信息(注册账号)INSERT
/
public ResponseModel sertRegister(Strg cellphone, Strg psd){
if (!MobileUtils.isMobileNO(cellphone)) {
return new ResponseModel(false, "手机号不正确!");
}
t suess = getActIsExist(cellphone);
if (suess == 1) {
return new ResponseModel(false, "该手机号已经注册,请前往登录。");
}
t i=0;
try {
i = aountRepository.sertRegisterModelOne(cellphone,psd);
}catch (Exception e){
i=0;
}
if (i > 0) {
return new ResponseModel(true, "注册成功!");
} else {
return new ResponseModel(false, "注册失败!");
}
}
//新增一条(注册)
@Query(value = "INSERT INTO t_aount (cellphone,aount_psd) VALUES (?1, ?2)", nativeQuery = true)
@Modifyg
t sertRegisterModelOne(Strg cellphone, Strg aount_psd);
上面三个段代码是我们已经做好的注册接口,接下来我们就去启动服务器开始验证吧,打开Postman 调用服务器接口。
我们看下t_aount中的数据
我们看下t_user中的数据
这时我们可以看到,t_aount表中的 aount_id cellphone aount_psd 已经插入进去,并且 t_user表中也插入userid cellphone和aount_psd,而且是一一对应的。
好了,一个简单的触发器就是这么完成的,希望以上的内容对你能够有帮助。
趣事百科
- 秦海璐结过多少次婚 秦海璐有几次婚姻
- 女生身高多少算矮 女生身高多少以下算矮
- 地动仪是谁发明的 世界上第一架地动仪是谁发明
- 大兴安岭巨蛇事件 大兴安岭巨蛇事件真相
- 黄晓明宣布恋情 黄晓明公布新恋情
- 红色高跟鞋吉他谱 红色高跟鞋吉他谱G调弹唱
- 爱上黑社会老大:爱上黑社会老大的电影
- 安娜贝尔原型事件 安娜贝尔原型长什么样
- 李谷一的身高是多少 歌唱家李谷一身高多少厘米
- 霍思燕和江一燕什么关系 江一燕和霍思燕哪个更
- 三星堆为什么不敢研究了 三星堆为什么不敢挖掘
- 朱秀华事件:朱秀华事件骗局
- 方琼现任老公是谁 方琼老公个人资料
- 东来东往现状:东来东往是哪里人
- 太湖冤案事件真相 太湖冤案事件真相揭秘
- 双鱼玉佩恐怖的黑白照 双鱼玉佩黑白照片大全