能这样给特性赋初始值吗,麻烦各位给个正解
create PROCEDURE library_InsertUpdateDelete
(   llibraryID  int =0,
   lfileName  varchar(50)='',
   lfileSize   int =0,
   lbookName   varchar(400)='',
   lpinyin     varchar(20)='',
   lsubName    text=''

解决方案 »

  1.   

     DELIMITER $$
     drop procedure if exists  touch_;
     CREATE PROCEDURE `touch_`(IN a varchar(20),IN b varchar(20),IN c varchar(20)) BEGIN 
     SET  a ="3";
     SET  b ="2";
     SET  v ="1";
     set @v_flag = concat("select * from t where id!=",a," and  id!=",b," and id!=",c);
     prepare ee from @v_flag;
     EXECUTE ee ;
     DEALLOCATE PREPARE ee;
     END$$
    存储过程只能在begin 和end 之间设置变量值
    声明部分目前我还不知道
      

  2.   

    因为之前用的都是sqlserver,mysql是初次使用,所以对mysql存储过程不了解,
      

  3.   

    create PROCEDURE library
    (
      DB_Option_Action_ varchar(20))begin declare ReturnValue int 
       set ReturnValue=-1
    if(DB_Option_Action_='Insert')
     begin
    能不能这样判断 if(DB_Option_Action_='Insert')
      

  4.   

    DELIMITER $$ 
    drop procedure if exists  touch_; 
    CREATE PROCEDURE `touch_`(IN a varchar(20),IN b varchar(20),IN c varchar(20)) 
    BEGIN 
    if a="Integer" then
    SET  a ="3"; 
    end if;

    SET  b ="2"; 
    SET  c ="1"; 
    set @v_flag = concat("select * from t where id!=",a," and  id!=",b," and id!=",c); 
    prepare ee from @v_flag; 
    EXECUTE ee ; 
    DEALLOCATE PREPARE ee; 
    END$$ 
      

  5.   

    你这种写法在mssql里面就可以,在mysql下不可以
    其实,你可以存储进来null值,然后在存储过程的主体部分首先对输入参数的值检查并根据情况赋值,这样,你达到了默认值的效果了
      

  6.   

    MYSQL不支持省缺参数。不过你可以在你的存储过程中判断一下,如果参数 is null ,则赋予默认值。