错误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';