浅谈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之数据类型总结
Sep 24 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Python之修改图片像素值的方法
Jul 03 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
python numpy存取文件的方式
Apr 01 Python
python迭代器常见用法实例分析
Nov 22 Python
python线程定时器Timer实现原理解析
Nov 30 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 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
重置版游戏视频
2020/04/09 魔兽争霸
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
怎样写演讲稿
2014/01/04 职场文书
车辆安全检查制度
2014/01/12 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
初中生物教学随笔
2015/08/15 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
数据库连接池
2021/04/06 MySQL
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
php双向队列实例讲解
2021/11/17 PHP
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python