CREATE PROCEDURE [dnt_deleteps]
@index int,
@pmidlist varchar(1000)='',
@userid int=0
 AS
DECLARE @strSQL varchar(5000) IF @index=0
BEGIN
GOTO UserDeletePM
END
UserDeletePM: SET @strSQL='DELETE FROM [dnt_pms] WHERE [pmid] IN (' + @pmidlist + ') AND [userid]=' + STR(@userid)请问上述的MSSQL存储过程要改为mysql的
改成这样的对吗?
CREATE PROCEDURE dnt_deleteps()
declare index int,
declare pmidlist varchar(1000)='',
declare userid int=0
 
DECLARE strSQL varchar(5000) IF index=0
BEGIN
GOTO UserDeletePM
END
UserDeletePM: SET strSQL='DELETE FROM [dnt_pms] WHERE [pmid] IN (' + pmidlist + ') AND [userid]=' + STR(userid)

解决方案 »

  1.   

    我是mysql新手,有没有人指点一下
      

  2.   

    mysql> delimiter //
    mysql> CREATE PROCEDURE dnt_deleteps()
        -> begin
        ->  declare `index` int;
        ->  declare pmidlist varchar(1000) default '';
        ->  declare userid int default 0;
        ->
        ->  DECLARE strSQL varchar(5000);
        ->
        ->  IF `index`=0 then
        ->          SET strSQL= concat('DELETE FROM [dnt_pms] WHERE [pmid] IN (' , pmidlist , ') AND [userid]=' , userid);
        ->
        ->   END IF;
        -> end;
        ->
        -> //
    Query OK, 0 rows affected (0.23 sec)mysql>
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html