2016-03-29 24 views
0

Merhaba, saklı yordamları uygularım ve yardıma ihtiyacım var. IF'yi kullanmayı denemek istiyorum. Seçme kimliği varsa, onu silmek istiyorum.Saklı yordam Sil

HATA 1064 (42000): SQL sözdiziminizde bir hata var; Doğru sözdizimi hattı 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 ; 

cevap

0

Bu if iyi bir örnek değil de '' yakınında kullanmak için MySQL sunucu sürümü ile uyumlu kılavuzu. En iyi mantıktır:

begin 
    delete from user where id = _id 
end; 

bu durumda if için bir sebep yoktur. Sen yapabileceği:

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

Bunu tavsiye etmem. Ancak, temel olarak, end'dan önce if için end if'a ihtiyacınız var.

İlgili konular