2016-05-01 21 views
0

私はname varchar(25)pass varchar(50)という列のテーブルusersを持っています。 正しいパスを持つ正しいユーザーの列を削除するストアドプロシージャを作成する必要があります。 このことは、エラー1064(構文エラー)私をスローするように私のコードの何か場合:私はsuccedいるelseifエラーの場合のmysqlのプロシージャ

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() 'は1つの引数しか受け付けないが、' count(name、pass) 'を持つ。 'users'テーブルの行の例と、生成しようとしている出力を表示するために上記を編集すると役に立ちます。テーブルから 'ALTER'を使って列を削除するのではなく、' DELETE FROM users WHERE name = newname AND pass = newpass' –

答えて

0

、I'wではなくDMLDDL構文...

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

答えを使用しました私の鼻の前にあった...

関連する問題