mysql触发器,存储过程,预处理语句

 创建t1表
 create table t1(id varchar(10),name varchar(10),age varchar(20));
 创建t2表
 create table t2(id varchar(10),name varchar(10),age varchar(20));
 
 
 //当对t1表进行添加时自动对t2表也添加
 先设置结束符,因为在创建触发器的过程中要使用分号所以需要修改结束符
 \d$$
 create trigger tm before insert on t1 for each row
 begin
 insert into t2(id,name,age) values(new.id,new.name,new.age);
 end
 $$
 
  //当对t1表进行删除时自动对t2表也删除
   create trigger td before delete on t1 for each row
   begin
   delete from t2 where id=old.id;
   end
   $$
    //当对t1表进行修改时自动对t2表也修改
   create trigger tu before  update on t1 for each row
   update t2 set id=new.id where id=old.id;
   end $$
   
   
   
   
   
   创建存储过程
   先创建一张表
   CREATE TABLE `ttt` (
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

创建存储过程
先设置结束符,因为在创建触发器的过程中要使用分号所以需要修改结束符
 \d$$
create PROCEDURE `p3`()
begin
set @i=0;
while @i < 1000 do
insert into  ttt(name) values(concat("username",@i));
set @i=@i+1;
end while;
end $$

//调用存储过程
call p3$$

//预处理语句
//我已经有了表testdata,表结构如下
 CREATE TABLE `testdata` (
  `deptno` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `dname` varchar(20) NOT NULL DEFAULT '',
  `loc` varchar(13) NOT NULL DEFAULT '',
  `num` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 
//表数据如下
+--------+-------+-----+------+
| deptno | dname | loc | num  |
+--------+-------+-----+------+
|      1 | life  | l1  | NULL |
|      2 | life  | 22  | NULL |
|      3 | study | 33  | NULL |
|      4 | work  | 44  | NULL |
|      5 | study | 55  | NULL |
|      6 | life  | 66  | NULL |
|      7 | life  | 1   | NULL |
|      8 | life  | 0   | NULL |
|      9 | life  | 2   | NULL |
|     19 | life  | 7   | NULL |
|     20 | life  | 66  |    1 |
|     21 | life  | 66  |  200 |
|     22 | life  | 66  |  200 |
+--------+-------+-----+------+

//创建预处理语句
先设置结束符,因为在创建触发器的过程中要使用分号所以需要修改结束符
 \d$$
prepare tp from "select * from testdata where deptno>? "$$
//设置变量的值
set @i=9$$
//调用预处理语句
execute tp using @i$$
执行结果如下
+--------+-------+-----+------+
| deptno | dname | loc | num  |
+--------+-------+-----+------+
|     19 | life  | 7   | NULL |
|     20 | life  | 66  |    1 |
|     21 | life  | 66  |  200 |
|     22 | life  | 66  |  200 |
+--------+-------+-----+------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值