当我的数据库中已经存在prcCompareWithSameItem这个存储过程时,下面这样执行不了?
提示说错误码: 1304
PROCEDURE prcCompareWithSameItem already exists
DELIMITER $$DROP PROCEDURE IF EXISTS `compare`.`prcCompareWithSameItem`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `prcCompareWithSameItem`(in item_id bigint)
begin
declare sSql varchar(3000);
set sSql=concat("select * from ccc");
set @sQuery=sSql;
prepare stmt from @sQuery;
execute stmt;
end$$DELIMITER ;

解决方案 »

  1.   

    在compare这个数据库中?检查一下
      

  2.   

    估计你现在不在compare 数据库中。先use compare;一下再试。
    use `compare`;DELIMITER $$DROP PROCEDURE IF EXISTS `compare`.`prcCompareWithSameItem`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `compare`.`prcCompareWithSameItem`(in item_id bigint)
    begin
    declare sSql varchar(3000);
    set sSql=concat("select * from ccc");
    set @sQuery=sSql;
    prepare stmt from @sQuery;
    execute stmt;
    end$$DELIMITER ;
    或者给你的CREATE DEFINER=`root`@`localhost` PROCEDURE `compare`.`prcCompareWithSameItem`(in item_id bigint)加上数据库名。
      

  3.   

    呵呵,当然要在一起执行
    DELIMITER $$ 
    DROP PROCEDURE IF EXISTS `compare`.`prcCompareWithSameItem`$$ 
    CREATE DEFINER=`root`@`localhost` PROCEDURE `prcCompareWithSameItem`(in item_id bigint) 
    begin 
    declare sSql varchar(3000); 
    set sSql=concat("select * from ccc"); 
    set @sQuery=sSql; 
    prepare stmt from @sQuery; 
    execute stmt; 
    end$$ DELIMITER ;