投票系统:
有2个表
Tablet votesubject:
datetime timestamp
showing datetime
content tinytext utf8 utf8_unicode_ci
title varchar 50 标题 0 标题 utf8 utf8_unicode_ci
id int 11 table votelabel:
num int 11 票数
label varchar 50 选型
subjectid int 11 主题ID
id int 11 存储过程 首先要 insert into votesubject(title,content,datetime)value(?,?);然后在这条新记录里由 id 在votelabel表里插入n条记录 subjectid =id,  所有插入的数据都是在通一个JSP页面(动态的表单 因为不能确定有几条选型 votelabel-- 插入n条记录 )提交到servlet,在servlet里调用这个存储过程。这个可以用单个SQL语句,不同JSP页面先后插入来实现 只是我想学习一下存储过程 以前从没用过 希望大家多指教, 给个思路也好 最好能把这个存储过程大略的解释一下。

解决方案 »

  1.   


    不是  
    我希望能写一个整个的存储过程给我,呵呵, 最好能在解释一下关键点 ,我刚在看MYSQL5.0的API ,但以前没写过存储过程,现在无从下手。MYSQL5.0的API 很简单的例子,没有什么启发。请多帮忙
      

  2.   

    这个步骤应该是先insert一条Tablet votesubject记录,然后有这个新的ID (这个ID是MYSQL自动加一生成的),前面同一个JSP页面提交有一个数组label[n],由这个数组来insert n 条table voteLabel记录,其中subjectID = ID(votesubject 新的ID )。
      

  3.   

    插入后取得自增字段ID最新值?用
    LAST_INSERT_ID()取得。
    你现在做到哪一步了?
      

  4.   

    前面同一个JSP页面提交有一个数组label[n],由这个数组来insert n 条table voteLabel记录,其中subjectID = ID(votesubject 新的ID )。 
    将N做为参数传递给存储过程,用循环来插入记录
      

  5.   

    drop procedure if exists addvoteProc;
    create procedure addvoteProce(in title varchar,content tinytext ,datetime1 datetime,n int)
    begin
    insert into votesubject (title,content,datetime) values
    (title,content,datetime1) ;
    declare maxid int;
    select max(id) into subjectid from votesubject;
    subjectid = LAST_INSERT_ID();
    declare i int;
    for( i =0;i<n;i++){
    insert into votelabel(label) values(数组[i]) ;
    }
    end
    这个刚写的 这个数组怎么作为参数传进去 选项名称 Sting[] ,
    还有我不知道声明形参里的 in out  inout 具体怎么用
      

  6.   

    这个数组怎么作为参数传进去:
    在语言中循环,将每个数组内容传进去还有我不知道声明形参里的 in out  inout 具体怎么用 
    IN 变量名 类型你的SP有语法问题
      

  7.   

    这个数组怎么作为参数传进去: 
    在语言中循环,将每个数组内容传进去 那么是要分成2个存储过程写, 第一个insert votesubject; 第二个  取 LAST_INSERT_ID() n  labelname, insert 到votelabel  我要在语言中循环第二个存储过程吗 ? 
    能帮我完整的些一下吗 ? 
     
      

  8.   

    没人赐教 不用存储过程了 
    请问
    select MAX(id) from votesubject 这个能得到最新生成的 Tablet  id (id 是incerement 主键)吗?
    还有LAST_INSERT_ID()在SQL语句中怎么使用?
      

  9.   

    select MAX(id) from votesubject 这个能得到最新生成的 Tablet  id (id 是incerement 主键)吗?
    还有LAST_INSERT_ID()在SQL语句中怎么使用?网络上用LAST_INSERT_ID(),单机可以用MAX(ID)
    插入执行完后,
    select LAST_INSERT_ID() into @rr from table
    seleect @rr
    既可得到