mysql 触发器不能创建表
2016-04-28 10:17
661 查看
http://hbiao68.iteye.com/blog/2005391
需求:我有个表 table1,当我向 table1 insert 数据 xx,xx,5555,xx 的时候,触发建立一个新表 t5555
不能做到在TRIGGER中建立表,会提示
Explicit or implicit commit is not allowed in stored function or trigger.
存储函数中不允许有DDL语句,这样会导致隐式的 commit;
由于上面的原因,因此也不能在事务中使用DLL语言,因为他会隐式的commit;
------解决方案--------------------
1、建议重新考虑你的数据库设计,一般很少会出现这种需求,在数据库设计完成后,不应该出现表结构上的变动。
2、这个在程序逻辑里判断比较好
下面这个是我写的一个简单触发器的例子
Sql代码
drop trigger hb;
create trigger hb after insert on myuser for each row
begin
insert into hb(name,pass) values(new.name,new.pass);
end;
insert into myuser(name,pass) values('huangbiao','dddddddd' );
select * from myuser;
需求:我有个表 table1,当我向 table1 insert 数据 xx,xx,5555,xx 的时候,触发建立一个新表 t5555
不能做到在TRIGGER中建立表,会提示
Explicit or implicit commit is not allowed in stored function or trigger.
存储函数中不允许有DDL语句,这样会导致隐式的 commit;
由于上面的原因,因此也不能在事务中使用DLL语言,因为他会隐式的commit;
------解决方案--------------------
1、建议重新考虑你的数据库设计,一般很少会出现这种需求,在数据库设计完成后,不应该出现表结构上的变动。
2、这个在程序逻辑里判断比较好
下面这个是我写的一个简单触发器的例子
Sql代码
drop trigger hb;
create trigger hb after insert on myuser for each row
begin
insert into hb(name,pass) values(new.name,new.pass);
end;
insert into myuser(name,pass) values('huangbiao','dddddddd' );
select * from myuser;
相关文章推荐
- 解决MySQL时间转换异常
- mysql数据库管理工具(navicat for mysql) 10.1.7 绿色中文版
- mysql5.5 主从复制 (触发器,函数,存储引擎,事件处理)说明
- 查看mysql语句运行时间的2种方法
- Mysql (三) - 视图、字符集、校对集、触发器
- mysql的下载到安装使用
- mysql ab复制
- 一、安装mysql、mysql基础、mysql常用命令、数据表以及数据类型
- MySQL5.6安装脚本
- mysql:约束
- MySQL数据备份之mysqldump使用
- windows mysql 自动备份的几种方法
- 在MySQL存储过程的语句中有三个标准的循环方式
- CI 配置 新浪云mysql数据库
- MySQL语句大全:创建、授权、查询、修改等
- MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作
- Mysql(一)安装使用
- 转载-查看mysql语句运行时间的2种方法
- Mysql 常用的连接查询 JOIN
- Mysql 视图 view