Mysql 双向关联触发器

双向关联触发器

//增加
delimiter //
create trigger InsertDemo
AFTER insert on vaccine.demo
for each row
Begin
if not exists (select * from wechat.demo where wechat.demo.id = new.id) then
INSERT INTO wechat.demo(wechat.demo.`name`,wechat.demo.`password`) VALUES(new.name,new.password);
end if;
end;//
delimiter ;

delimiter //
create trigger InsertDemo
AFTER insert on wechat.demo
for each row
Begin
if not exists (select * from vaccine.demo where vaccine.demo.id = new.id) then
INSERT INTO vaccine.demo(vaccine.demo.`name`,vaccine.demo.`password`) VALUES(new.name,new.password);
end if;
end;//
delimiter ;

//删除
CREATE TRIGGER de
After DELETE ON vaccine.demo
FOR EACH ROW
BEGIN
if exists (select * from wechat.demo where wechat.demo.id = old.id) then
DELETE FROM wechat.demo WHERE wechat.demo.id= OLD.id;
end if;
END;

CREATE TRIGGER de
After DELETE ON wechat.demo
FOR EACH ROW
BEGIN
if exists (select * from vaccine.demo where vaccine.demo.id = old.id) then
DELETE FROM vaccine.demo WHERE vaccine.demo.id = OLD.id;
end if;
END;

//修改

CREATE TRIGGER up
After UPDATE ON vaccine.demo
FOR EACH ROW
BEGIN
if not exists (select * from wechat.demo where wechat.demo.id = old.id and wechat.demo.`name`=new.name and wechat.demo.`password`=new.password) then
update wechat.demo set wechat.demo.`name`=new.name ,wechat.demo.`password`=new.password where wechat.demo.id =old.id;
end if;
END;

CREATE TRIGGER up
After UPDATE ON wechat.demo
FOR EACH ROW
BEGIN
if not exists (select * from vaccine.demo where vaccine.demo.id = new.id and vaccine.demo.`name`=new.name and vaccine.demo.`password`=new.password) then
update vaccine.demo set vaccine.demo.`name`=new.name ,vaccine.demo.`password`=new.password where vaccine.demo.id =old.id;
end if;
END;
时间: 2024-11-09 09:36:16

Mysql 双向关联触发器的相关文章

Hibernate5-一对多双向关联-左外连接-HQL

1.创建项目,项目名称hibernatedemo18,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体Bean Forum,包名(com.mycompany.demo.bean),如图所示 4.实体Bean Forum的内容如下 package com.mycompany.demo.bean; import java.util.Set; public class Forum { private int fid; private String

Hibernate5-一对多双向关联-迫切左外连接-HQL

1.创建项目,项目名称hibernatedemo19,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体Bean Forum,包名(com.mycompany.demo.bean),如图所示 4.实体Bean Forum的内容如下 package com.mycompany.demo.bean; import java.util.Set; public class Forum { private int fid; private String

mysql存储过程和触发器的应用

***********[mysql 存储过程和触发器 -- 别安驹]********************* 1.什么情况下使用存储过程? 完成一些比较麻烦的逻辑,比如多表在mysql端的cpu很空闲的情况下,用存储过程是不错的选择, 1.1.简单的存储过程示例:简单写入 DELIMITER $$ USE `curl_test`$$ DROP PROCEDURE IF EXISTS `data_s`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `

Hibernate5-多对一双向关联-fetch="select",lazy="proxy",在一的一方的class标签中添加

1.创建项目,项目名称hibernatedemo28,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体类Forum,包名(com.mycompany.demo.bean),如图所示 4.实体类Forum的内容如下 package com.mycompany.demo.bean; import java.util.Set; public class Forum { private int fid; private String name; p

Hibernate5-多对一双向关联-fetch="select",lazy="proxy"

1.创建项目,项目名称hibernatedemo29,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体类Forum,包名(com.mycompany.demo.bean),如图所示 4.实体类Forum的内容如下 package com.mycompany.demo.bean; import java.util.Set; public class Forum { private int fid; private String name; p

简单的一表对多表的双向关联

多表的xml: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <!--

Mybatis配置文件双向关联出现的问题

今天在配置mybatis的双向关联的时候,遇到了一些问题,现在在这里总结一下: 现在有学生和老师两个实体: student(N): teacher (1) 数据库的关联: Supervisor_id表示的是老师的id:是外键 Sql语句: /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50528 Source Host : localhost:3306 Source Database : c

Mybatis双向关联

一.双向关联,以多对多为例,假定一个父母只有一个孩子,那父母和孩子对应关系为1对1,既可以通过父母查询到孩子,也可以通过孩子查询到父母. 二. 1.添加依赖包,参考上篇文章 Mybatis+mysql入门使用 2.初始化数据库和初始数据,以mysql为例 DROP DATABASE IF EXISTS moy_mybatis; CREATE DATABASE moy_mybatis CHARACTER SET UTF8; USE moy_mybatis; DROP TABLE IF EXISTS

MySQL 视图、触发器、函数、存储过程

1.视图 视图的概念 视图就是一条 select 语句执行后返回的结果集. 视图的特性 视图是对若干张基本表的引用,一张虚表,查询语句的执行结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变) 视图的作用 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性:更加安全,数据库授权命令不能限定到特定的行和特定的列,但通过合理创建视图,可以把权限限定到行列级别: 应用场景 1.权限控制的时候,不希望用户访问表中某些敏感信息的列 2.对表进行复杂的关联查询时 示例: 查询小飞上的所以