MySQL数据库触发器添加,查询,删除操作

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

   需求是把公司的几套公共系统做成通过邮箱用户名和密码认证,只需记住一对用户名密码,简单为上,只允许用户在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小白!

时间: 2024-10-01 10:02:13

MySQL数据库触发器添加,查询,删除操作的相关文章

EF code first 实体类修改、添加、删除操作问题

问题描述 EF code first 实体类修改.添加.删除操作问题 EF code First 怎么来更新已存在的数据库结构? 比如:在实体类中我新添加了一个字段.修改字段名称或者类型.删除一个字段 等操作后我怎么更新到已存在的数据库对于表中去. 担心:我在持续开发中,改变了数据库的结构,如果这时候用户已经用以前的版本创建好数据库并且有了许多数据,假使我的修改只增加了一个表的一个可空列.而为此我只能重新创建数据库.请问有没有别的办法,能够把新的数据库结构在不损伤数据的情况下更新到部署好的环境中

asp批量添加修改删除操作示例代码

核心代码: <title>asp批量添加修改删除操作示例</title> <% if request.Form("op")="update" then'表单提交 ids=request.Form("ids") if ids<>"" then response.Write "要删除的数据id集合:"&ids&"<br>"

xml文件的读写,添加,修改,删除操作

xml文件的读写,添加,修改,删除操作 using system; using system.collections; using system.componentmodel; using system.data; using system.drawing; using system.web; using system.web.sessionstate; using system.web.ui; using system.web.ui.webcontrols; using system.web.

mysql数据库,在查询列名里子查询一列由两列组合去重的个数如何实现?

问题描述 mysql数据库,在查询列名里子查询一列由两列组合去重的个数如何实现? 需求:数据库有:列1----列2---- 127.0.0.1-----123----- 127.0.0.1-----123----- 127.0.0.1-----123----- 124.254.42.38----541--- 去除重复后结果 127.0.0.1---123 124.254.42.38----541 然后如何获得个数. 自己想了一下写出来后有错 select ( select DISTINCT 列1

mysql数据库表创建 查询 修改及删除命令

create创建数据库表 创建数据库表太常用了,只要用到数据库,我们就会用到创建数据库表,我们用create 语句来创建,看下面语法: create table tbl_name(create_definition,...) [type =table_type] create_definition:col_name type [not null | null][default default_value] [auto_increment][primary_key] create table是固定

C#连接MYSQL数据库并进行查询

之前用MFC开发结果界面太难看被pass了,要求用C#重新来开发>_<,不过终于摆脱VC6.0的蛋疼操作了Y. 先来连接数据库 (1)用c#连接MYSQL数据库需要用到mysql-connector-net,这个组件网上查找就可以下载,安装直接按next,按默认路径安装: (2)新建一个Winfrom工程后,引用这个组件 在解决方案资源管理器中右键引用->添加引用->浏览,浏览路径为安装mysql-connector-net的路径,如我的路径为:C:\Program Files (

mysql数据库修改添加Date格式列的方法_Mysql

import java.sql.*; import java.text.DateFormat; //数据库的查询 public class SelectTable { String dbDriver="com.mysql.jdbc.Driver"; String dbUrl="jdbc:mysql://localhost:3306/sss";//根据实际情况变化 String username="root"; String password=&q

Mysql数据库中创建、删除用户并授权给数据库

MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234")); 这样就创建了一个名为:test 密码为:

新手想小试牛刀,已经建立好mysql数据库表添加了几行数据.现在想通过java web吧mysql里的几条数据显示到网页上!

问题描述 本人纯新手,希望大家多多包涵已经在本地创建了mysql数据库,自己写了几条数据.我的想法是通过本地网页上的随便一个按钮,点过以后就显示本地mysql已储存的数据.上学的时候学过java,PHP和其他什么的我没见过,所以请大家告诉我java的实现方法和步骤.已经安装好JDKTomcatMySQLEclipse(JEE版)在百度里看别人在mysql里随便写几个测试数据后,然后又写了个.JSP就可以再网页里显示数据了,看着简单,但是搬运修改下后自己的机器上跑不了.... 解决方案 解决方案二