本人初学写MySQL数据库的SQL,想写一存储过程,死活通不过,
MySQL 版本:5.1.4
执行工具:Navicat Premiumdelimiter //
create procedure usp_chcek_data_delete_power(in groupId char, out affRows int, out msg varchar)
begin
SELECT COUNT(*) INTO affRows from t_data_group_objects WHERE c_group_id = groupId;
     if(affRows > 0) then
set msg = '该数据分组已经对应了对象数据不能删除!';
return;
     end if;     select count(*) into affRows from t_role_data b where b.c_data_id = groupId;
     if(affRows > 0) then
msg := '该数据分组已经和权限关联,不能删除!';
return;
     end if;
end
//-------------------------------------------------------------------
错误提示:[Err] 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 ')
begin
SELECT COUNT(*) INTO affRows from t_data_group_objects WHERE c_group_' at line 1
请各位高手指点,没有搞明白

解决方案 »

  1.   

    (groupId char(10),affRows int,msg varchar(10))写上长度
      

  2.   

    DELIMITER //
    DROP PROCEDURE IF EXISTS usp_chcek_data_delete_power//
     CREATE PROCEDURE usp_chcek_data_delete_power(IN groupId CHAR(10), OUT affRows INT, OUT msg VARCHAR(10))
     BEGIN
     SELECT COUNT(*) INTO @affRows FROM t_data_group_objects WHERE c_group_id = groupId;
          IF @affRows>0 THEN
     SET msg = '该数据分组已经对应了对象数据不能删除!';
     ELSE 
         SELECT COUNT(*) INTO @affRows FROM t_role_data b WHERE b.c_data_id = groupId;
          IF affRows > 0 THEN
     SET msg = '该数据分组已经和权限关联,不能删除!';
          END IF;
          END IF;
     END
     //