存储过程怎么运行多个insert/update?传入参数时怎么传?要求一个事务中完成,方便回滚。

解决方案 »

  1.   

    START TRANSACTION
    insert/update
    commit
      

  2.   

    存储过程怎么运行多个insert/update?
    这个你直接在事务中就行了。传入参数时怎么传?
    你的具体需要是什么?在存储过程开始就需要传入所有的参数,无法执行一半再等你传其它参数。
      

  3.   

    MYSQL本身并不支持数组。
    没有什么好办法。或者用你的程序来实现。或者用存储过程,传入一个字符串,字符串中包含你所有的数组数据。比如 'A1,100,A2,200,A5,700' 这种方法传入
    A1,100
    A2,200
    A5,700
      

  4.   


    MYSQL没有数组,要么一个一个传入OR
    存入临时表再做处理
      

  5.   

    drop procedure if exists fileInsertProc;
     create procedure fileInsertProc(In val1 varchar(30),In val2 varchar(30),In val3 varchar(30),In val4 varchar(30),In val5 int)
       begin
           insert into upload(fileName,fileUrl)values(val1,val2);
           insert into file(fileTitle,fileKind,userId,uploadId)values(val3,val4,val5,LAST_INSERT_ID());
    end;这样可以传入多个参数
      

  6.   

    drop procedure if exists fileInsertProc;
     create procedure fileInsertProc(In val1 varchar(30),In val2 varchar(30),In val3 varchar(30),In val4 varchar(30),In val5 int)
      begin
      insert into upload(fileName,fileUrl)values(val1,val2);
      insert into file(fileTitle,fileKind,userId,uploadId)values(val3,val4,val5,LAST_INSERT_ID());
    end;
      

  7.   

    要是有规律的话,你弄个循环,在循环里面执行insert、update。
    declare exit handler for sqlexception rollback;
    start transaction;commit;