2016-03-29 3 views
0

こんにちは、私はストアドプロシージャを練習しており、助けが必要です。 私はIFを使用しようとします。選択IDが存在する場合は、削除したいと思います。ストアドプロシージャ削除

ERROR 1064(42000):SQL構文にエラーがあります。ライン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 ; 

答えて

0

でこれはifの良い例ではありません「」の近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください。最高のロジックは次のとおりです。

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にはend ifが必要です。

関連する問題