MYSQL 事务的问题
SQL code:
create PROCEDURE aa(SqlCMD1 varchar(8000),SqlCMD2 varchar(8000),SqlCMD3 varchar(8000))
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
EXECUTE SqlCMD1;
EXECUTE SqlCMD2;
EXECUTE SqlCMD3;
COMMIT;
end
#drop PROCEDURE aa
call aa('insert into a(vName) values('B')','insert into a(vName) values('B')','insert into a(vName) values('B')')
现在有3个SQL命令,要用事务来处理其运行情况。我创建存储过程如上,三条SQL命令当做参数传入,然后事务开始,再依次运行3条语句,再提交事务,如果发生错误,回滚事务。
测试的时候报错。。
要实现这这样的操作,应该怎么样写这个存储过程??
沙发自己坐,在线等。
EXECUTE SqlCMD1; mysql不支持这样执行动态sql的。
要用这种语法
PREPARE stmt_name from preparable_stmt;
EXECUTE stmt_name [USING @var_name [, @var_name] ...];
{DEALLOCATE | DROP} PREPARE stmt_name;
1. MYSQL不支持这种 EXECUTE SqlCMD1; 按楼上的更改为 prepare / execute
SQL code:
create PROCEDURE aa(SqlCMD1 varchar(8000),SqlCMD2 varchar(8000),SqlCMD3 varchar(8000))
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
PREPARE stmt_name from SqlCMD1;
EXECUTE stmt_name;
DEALLOCATE stmt_n
相关问答:
如题,这三个在win7下使用会有什么兼容性问题吗?
由于我最近在使用win7,就懒得进xp了!
自己用windows 2008有一年多了,没出现任何问题。
win7测试版也用过,不会有什么问题的,放心。
当然你最 ......
Winform+MySQL做项目,在注重性能的情况下,我该如何去完成这类型的项目呢!
请各位给以提示。
你这个范围太广了,我说2点重要的吧
1.WINFORM程序是单独运行的CS程序,和BS不同,BS的压力始终都在SERVER上的,对C ......
如题 数据是BLOB类型 怎么才能修改其中的某些值
BLOB中存入的是什么内容?
假设字段memo为blob类型,在该字段的值前面增加字符串'add--'
则操作语句如下:
SQL code:
update tb_blog set memo=concat( ......
建表:插记录
SQL code:
create table tablename (id int,RQ1 datetime,RQ2 datetime)
-- select * from tablename
insert into tablename
select 1,'2009-01-01 10:00:00','2009-01-02 11:00:00' union
......