存储过程删除

时间:2016-03-29 11:21:07

标签: mysql stored-procedures

您好,我正在练习存储过程,我需要帮助。 我想尝试使用IF。如果存在选择ID,那么我想删除它。

错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第6行

DELIMITER $$
CREATE PROCEDURE HELLO(IN _id INT)
BEGIN
IF EXISTS(SELECT ID FROM User WHERE ID = _id) 
THEN 
DELETE FROM User WHERE ID = _id;
END
$$
DELIMITER ;

1 个答案:

答案 0 :(得分:0)

这不是if的好例子。最好的逻辑是:

begin
    delete from user where id = _id
end;

在这种情况下if没有理由。你可以做:

begin
    if exists (select 1 from users where id = _id) then
        delete from user where id = _id;
    end if;
end;

我不推荐这个。但是,基本上,end if之前的if只需要end