在`if-then;中省略分号时出现错误1064-mysql(42000);其他的结束if `


错误1064(42000):您的SQL语法有错误;查看手册对应于您的MySQL服务器版本,以便在'if;在第18行结束
CREATE PROCEDURE UnitIdCheckForDelete( 
p_unitId varchar(50))
begin
if(
   (
    (
     SELECT ifnull(count(tbl_Product.unitId),0) 
     FROM  tbl_Product 
     WHERE   unitId=p_unitId
    ) > 0
   ) OR 
   (
    (
     SELECT ifnull(count(tbl_UnitConversion.unitId),0) 
     FROM tbl_UnitConversion 
     WHERE  tbl_UnitConversion.unitId=p_unitId
    ) > 0 
   )  
  )
then
SELECT 'true' ;
else
SELECT 'false'
end if ;
end ; //

试试这个:

DELIMITER //
CREATE PROCEDURE UnitIdCheckForDelete( 
p_unitId varchar(50))
begin
if(
   ((SELECT ifnull(count(tbl_Product.unitId),0) 
     FROM  tbl_Product 
     WHERE   unitId=p_unitId)>0) OR 
    ((SELECT ifnull(count(tbl_UnitConversion.unitId),0) 
      FROM tbl_UnitConversion 
      WHERE  tbl_UnitConversion.unitId=p_unitId)> 0 )  
    )
then SELECT 'true' ;
else SELECT 'false' ;
end if ;
end ; //

您在以下语句的末尾缺少semicolun

SELECT 'false'

这句话应该是这样的:(正如@nrathaus在评论中提到的那样)

SELECT 'false';

最新更新