浅谈MySQL中的触发器


Posted in Python onMay 05, 2015

在很多时候,干得利索不如想的明白。方案应该根据场景来设计,不是盲目的依靠经验,当然这也算新经验!

   需求是把公司的几套公共系统做成通过邮箱用户名和密码认证,只需记住一对用户名密码,简单为上,只允许用户在ExtMail的web页面修改密码!在做论坛认证的时候,由于论坛的复杂性,想到了如下的几个方案:

    通过OAuth2.0做认证,或者自己写接口,问题是只听过,没玩过!

    在邮箱修改时,也提交到论坛的数据库。可惜不会ExtMail的Perl代码,且修改代码工作量太大!

    先前已经把线上邮箱用户表同步到内网,可以做数据库复制,可论坛和邮箱的数据库字段有较大出入,还是要改大量代码!

    使用触发器更新论坛数据库的用户表!

       在仔细考虑过前面三种办法之后,在能力范围内,已经把PHP编写的论坛认证方式修改成适应邮箱的加盐认证方式,并测试了导入邮箱用户名和密码认证。已经修改过论坛数据库字段类型,部分后端代码!最后一步是自动把邮箱数据库的用户表变更同步到论坛数据库的用户表。

       在讨论数据库复制时,发现还是最后一种触发器的办法可行性最好,通过对论坛用户表的大多数字段设置默认值,做到只添加修改其中的账号,密码和邮件三个字段即可完成对论坛用户的操作,下面是根据实际情况编写的MySQL触发器!

       触发器添加用户

use extmail;
  DELIMITER //
  create trigger add_bbsuser
  after insert on extmail.mailbox
  for each row
  begin
  insert into xiuno_bbs.bbs_user(username,password,email) \
   values (new.name,new.password,new.username);
  end // 
  DELIMITER ;

       触发器更新用户

use extmail;
  DELIMITER //
  create trigger update_bbsuser
  after update on extmail.mailbox
  for each row
  begin
  update xiuno_bbs.bbs_user set username=new.name,\
  password=new.password where email=new.username;
  end // 
  DELIMITER ;

       触发器删除用户

use extmail;
  DELIMITER //
  create trigger delete_bbsuser
  after delete on extmail.mailbox
  for each row
  begin
  delete from xiuno_bbs.bbs_user where email=old.username;
  end // 
  DELIMITER ;

       我踩过的坑

       刚开始编写触发器,从网上找来的命令都不能用,完全一筹莫展之际领悟到,触发器和数据库是绑定的,必须先use extmail到要触发的extmail数据库中,才能对这个库的操作做相应的触发,后来就没有问题了!我果然是MySQL小白!

Python 相关文章推荐
Python批量修改文件后缀的方法
Jan 26 Python
Python基于twisted实现简单的web服务器
Sep 29 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
python生成二维码的实例详解
Oct 29 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
Python学习之时间包使用教程详解
Mar 21 Python
python去除所有html标签的方法
May 05 #Python
python实现将汉字转换成汉语拼音的库
May 05 #Python
python基于Tkinter库实现简单文本编辑器实例
May 05 #Python
python实现的简单窗口倒计时界面实例
May 05 #Python
给Python中的MySQLdb模块添加超时功能的教程
May 05 #Python
用Python实现一个简单的多线程TCP服务器的教程
May 05 #Python
简单介绍Python中的try和finally和with方法
May 05 #Python
You might like
php实现用户在线时间统计详解
2011/10/08 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
js innerHTML 改变div内容的方法
2013/08/03 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
python psutil监控进程实例
2019/12/17 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
灵泰克Java笔试题
2016/01/09 面试题
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
大学生职业生涯规划书范文
2014/01/04 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
合作经营协议书
2014/04/17 职场文书
党员教师一句话承诺
2014/05/30 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
支行行长竞聘报告
2014/11/06 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
党员剖析材料范文
2014/12/18 职场文书
发布会邀请函
2015/01/31 职场文书
置业顾问岗位职责
2015/02/09 职场文书
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏