mysql——我自己写的两张表(插入、删除、更新)同时进行的(触发器)实例

本文介绍了一个具体的MySQL触发器实现案例,包括插入、删除及更新触发器的创建与使用过程,并展示了如何通过PHP脚本实现对数据库的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库如下:

<span style="font-size:18px;">create database mytest;
use mytest;

DROP TABLE IF EXISTS `user1`;
CREATE TABLE `user1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `phone` varchar(30) NOT NULL,
  `password` varchar(50) NOT NULL,
  `aaaa` varchar(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8;

DROP TABLE IF EXISTS `user2`;
CREATE TABLE `user2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ue_name` varchar(30) NOT NULL,
  `ue_phone` varchar(30) NOT NULL,
  `ue_password` varchar(50) NOT NULL,
  `aaaa` varchar(11) NOT NULL,
  `sssss` varchar(12) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8;</span>

<span style="font-size:18px;"><?php  
<strong><span style="color:#FF0000;">// 插入触发器</span></strong>
header('content-Type:text/html;charset=utf-8');
$conn=mysql_connect("localhost","root","") or die('连接错误');
mysql_select_db("mytest",$conn);
$s=mysql_query("set names utf8");

$sql_drop="DROP TRIGGER IF EXISTS t_afterinsert_on_user1";
$query_drop=mysql_query($sql_drop);
//判断是否有触发器,有的话删除掉之前的触发器
if($query_drop){
	//创建一个触发器
	$sql=<<<EOF
	CREATE TRIGGER t_afterinsert_on_user1  
	AFTER INSERT ON user1
	FOR EACH ROW
	BEGIN
	     insert into user2(ue_name,ue_phone,ue_password) values(new.name,new.phone,new.password);
	END;
EOF;
	$query=mysql_query($sql);
	//如果触发器创建成功
	if($query){
		$sql_one="insert into user1 values(null,'name1','15236018202','".md5('123456')."','abcd')";
		$query_one=mysql_query($sql_one);
		if($query_one){
			echo "<script>alert('插入触发成功');</script>";
		}else{
			echo "<script>alert('插入触发fail');</script>";
		}
	}else{
		echo 'fail';
	}
}
?></span>

<span style="font-size:18px;"><?php  
<span style="color:#FF0000;"><strong>//删除触发器</strong></span>
header('content-Type:text/html;charset=utf-8');
$conn=mysql_connect("localhost","root","") or die('连接错误');
mysql_select_db("mytest",$conn);
$s=mysql_query("set names utf8");

$sql_drop="DROP TRIGGER IF EXISTS t_afterdelete_on_user1";
$query_drop=mysql_query($sql_drop);
//判断是否有触发器,有的话删除掉之前的触发器
if($query_drop){
	//创建一个触发器
	$sql=<<<EOF
	CREATE TRIGGER t_afterdelete_on_user1
	AFTER DELETE ON user1
	FOR EACH ROW
	BEGIN
	      delete from user2 where id=old.id;
	END;
EOF;
	$query=mysql_query($sql);
	//如果触发器创建成功
	if($query){
		$sql_one="delete from user1 where id=6";
		$query_one=mysql_query($sql_one);
		if($query_one){
			echo "<script>alert('删除触发成功');</script>";
		}else{
			echo "<script>alert('删除触发fail');</script>";
		}
	}else{
		echo 'fail';
	}
}
?>
</span>

<span style="font-size:18px;"><?php  
<strong><span style="color:#FF0000;">// 更新触发器</span></strong>
header('content-Type:text/html;charset=utf-8');
$conn=mysql_connect("localhost","root","") or die('连接错误');
mysql_select_db("mytest",$conn);
$s=mysql_query("set names utf8");

$sql_drop="drop trigger if exists t_afterupdate_on_user1";
$query_drop=mysql_query($sql_drop);
//判断是否有触发器,有的话删除掉之前的触发器
if($query_drop){
	//创建一个触发器
	$sql=<<<EOF
	CREATE TRIGGER t_afterupdate_on_user1
	AFTER UPDATE ON user1
	FOR EACH ROW
	begin
		update user2 set ue_name=NEW.name,ue_phone=NEW.phone,ue_password=NEW.password where id=OLD.id;
	end;
EOF;
	$query=mysql_query($sql);
	//如果触发器创建成功
	if($query){
		$sql_one="update user1 set name='name123',phone='152360155',password='".md5('456')."' where id=2";
		$query_one=mysql_query($sql_one);
		if($query_one){
			echo "<script>alert('更新触发成功');</script>";
		}else{
			echo "<script>alert('更新触发fail');</script>";
		}
	}else{
		echo 'fail';
	}
}
?></span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值