2016-05-01 83 views
0

我有表usersname varchar(25)pass varchar(50)。 我需要創建一個存儲過程,如果存在正確的通行證,則爲正確的用戶刪除列。 如果我的代碼是這樣的,它拋出我的錯誤1064(語法錯誤):mysql st程序如果elseif錯誤

delimiter // 
create procedure delete_user(newname varchar(25), newpass(50)) 
begin 
    declare usersCount int; 
    select count(name,pass) from users into usersCount where name=newname && pass=newpass; 
    if usersCount !=0 then 
     alter table users drop column where name=newname && pass=newpass; 
    else if 
     select there is no souch user\!; 
    end if; 
end// 
delimiter; 
+0

請編輯您的問題,以顯示確切的錯誤。但我懷疑這是因爲你需要單引號字符串文字'SELECT'沒有這樣的用戶!'和'COUNT()'只接受一個參數,但你有'count(name,pass)'。如果您在上面編輯以顯示「用戶」表中的行示例以及您嘗試生成的輸出,這將有所幫助。你不想用'ALTER'從表中刪除列,而是'DELETE FROM users WHERE name = newname AND pass = newpass' –

回答

0

我已經贏得成功,I'w使用DML代替DDL語法...

... delete from users where name=newname && pass=newpass; ...

答案是我的鼻子面前...