解决方案 »

  1.   

    这里的是p_in这个参数是只字段名吗?
    不是字段名,是传入参数
      

  2.   

    这个参数是怎么传进来的,就想我写的那个要改u_name应该怎么做呢(啊,帖子没发完)
    我那段代码是//下面是我自己写的一个,这个表中有 uid ,和u_name等字段,但是下面的语句提示第三行错误,把
    WHERE uid=1去掉也是一样CREAT PROCEDURE pr_demo(IN u_name CHAR)
    BEGIN
    SELECT u_name WHERE uid=1;
    SET u_name='hcf';
    SELECT u_name WHERE uid=1;
    END;还有个示例CREAT PROCEDURE sp_name()
    BEGIN
    SET @a = 5;    //这里的@ 是干嘛用的
    SET @b = 5;
    INSERT INTO t values (@a);
    SELECT s1 * @a FROM t WHERE s1 >=@b; //这一句的s1 * @a没明白,s1是什么
    END;
      

  3.   

    这个参数是怎么传进来的->
    CALL pr_demo('AA')SELECT u_name WHERE uid=1;->少了FROMSET @a = 5;    //这里的@ 是干嘛用的 
    SESSION级变量这一句的s1 * @a没明白,s1是什么:
    S1字段名,s1 * @a:字段值*变量@A的值
      

  4.   

    p_in 只是这参数,与字段名没有什么必然的关系。select 123 ; 这样的语句只是通过SELECT语句进行输出。 同样 select  p_in;不过是把变量的内容输出。
      

  5.   

    CREAT 写错了CREATE 我把代码改过之后还是不行,代码如下
    CREATE PROCEDURE pr_demo( IN u_name CHAR )  //这里可以有多个参数吗
    BEGIN 
    SELECT u_name FROM user WHERE uid=1;    //找不到这里的错误
    SET u_name='hcf';
    SELECT u_name FROM user;
    END;
    CALL pr_demo('u_name');错误提示:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 
      

  6.   

    user ->`user`
    保留字CREATE PROCEDURE pr_demo( IN u_name CHAR )  //这里可以有多个参数吗
    可以,你的u_name是什么参数,如果是传入参数字段名,要用动态执行的方法
      

  7.   

    20.2.1. CREATE PROCEDURE和CREATE FUNCTION
    CREATE PROCEDURE sp_name ([proc_parameter[,...]])
        [characteristic ...] routine_body
     
    CREATE FUNCTION sp_name ([func_parameter[,...]])
        RETURNS type
        [characteristic ...] routine_body
        
        proc_parameter:
        [ IN | OUT | INOUT ] param_name type
        
        func_parameter:
        param_name type
     
    type:
        Any valid MySQL data type
     
    characteristic:
        LANGUAGE SQL
      | [NOT] DETERMINISTIC
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
      | SQL SECURITY { DEFINER | INVOKER }
      | COMMENT 'string'
     
    routine_body:
        Valid SQL procedure statement or statements
    多看看参考手册。里面有现成的例子。
      

  8.   

    字段名,我今早上才接触存储过程的。怎么动态执行?
    我用的Wamp5,支持存储过程吗
      

  9.   

    DELIMITER $$USE `ee`$$DROP PROCEDURE IF EXISTS `pr_demo`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `pr_demo`( IN u_name1 CHAR(20), u_name2 CHAR(20))
    BEGIN 
    SET @asql=CONCAT('select ',u_name1,',',u_name2,' from aa');
    SELECT @asql;
    PREPARE stml FROM @asql;
    EXECUTE stml;
    END$$DELIMITER ;
      

  10.   

    楼主需要简单了解一下数据库的基础。《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html