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;
正確なエラーを表示するためにあなたの質問を編集してください。しかし、私はあなたが文字列リテラル 'SELECT 'にそのようなユーザは一重引用符で囲む必要があるからだと思う。'そして' COUNT() 'は1つの引数しか受け付けないが、' count(name、pass) 'を持つ。 'users'テーブルの行の例と、生成しようとしている出力を表示するために上記を編集すると役に立ちます。テーブルから 'ALTER'を使って列を削除するのではなく、' DELETE FROM users WHERE name = newname AND pass = newpass' –