本人从未用过mysql数据库,
今日想实现在Mysql中创建一个存储过程,有参数,sql语句为2条insert语句,需要用到事务。
望各位大虾回复?

解决方案 »

  1.   

    示例:
    create procedure ff()   
    begin  
    declare exit handler for sqlexception rollback; 
    start transaction;  
    insert into ....;
    insert into ....;
    commit;   
    end;  
      

  2.   

    参考手册中的例子,先自己写一下。有什么具体问题贴出来大家一起讨论。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  3.   

    但是会报错啊。。2楼,,添加2条数据还要返回一个int型的结果!!!在帮帮忙,,,
      

  4.   

    那你需要的是存储函数。create funciton ...
      

  5.   

    create procedure inserSms(
    iSmsInfoName VARCHAR(50),
    iDescription VARCHAR(50),
    Content VARCHAR(2000),
    iAccount VARCHAR(50),
    [date] DATETIME,
    SmsInfoSendName VARCHAR(50),
    Type INT ,
    Address VARCHAR(50),
    LinkServiceDate DATETIME,
    out ReturnVal int output)
    begin
    declare exit handler for sqlexception rollback;  
    start transaction
    insert into SmsInfo VALUES(@SmsInfoName, @Description,@Content,@Account,@date)
    INSERT INTO dbo.SmsInfoSend
    VALUES  (@SmsInfoSendName,@SmsInfoName,@Type,@Address,@date,@LinkServiceDate,'','')
    commit
    end这样写 报错了。从来没用过my sql数据库!
      

  6.   

    错误信息是什么?建议使用MYSQL的命令行工具。这个可以直接看到错误提示。
      

  7.   

    1458 Incorrect routine name
      

  8.   

    你是在MYSQL命令行下?
    示例:
    delimiter $$
    create procedure ff()   
    begin   
    declare exit handler for sqlexception rollback;  
    start transaction;   
    insert into ....;
    insert into ....;
    commit;   
    end;$$
    delimiter ;