1
私はMySQLのupdateusersといくつかの問題を抱えているが、このようになりストアド・プロシージャ:MySQLの複数のストアドプロシージャの更新
DELIMITER go
Create procedure updateusers(
IN UserID tinyint(11),
IN FirstName varchar(30),
IN LastName varchar(30),
IN Password varchar(30),
IN EmailAddress varchar(30),
IN Salt varchar(40),
IN RoleID varchar(1))
BEGIN
update users
set
FirstName = FirstName
where UserID = UserID
End
BEGIN
update users
set
LastName = LastName
where UserID = UserID
End
BEGIN
update users
set
Password = Password
where UserID = UserID
End
BEGIN
update users
set
EmailAddress = EmailAddress
where UserID = UserID
End
BEGIN
update users
set
Salt = Salt
where UserID = UserID
End
BEGIN
update users
set
RoleID = RoleID
where UserID = UserID;
End
go
DELIMITER ;
をし、私が言うのライン16にエラーました:
MySQLは言ったが:ドキュメント#1064 - SQL構文に誤りがあります。
call updateusers(3,'John','Jamieson','dsd','[email protected]','abac123','U')
出力つまり私はになります。私はこのような呼び出しストアドプロシージャを使用しているだろうその後
'End BEGIN update users set LastName = LastName where UserID = Us' at line 16
近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してくださいこれに
UserId FirstName LastName Password EmailAddress Salt RoleID
3 John Smith abc [email protected] 123 U
:私はから更新したい場合などで取得したい
UserId FirstName LastName Password EmailAddress Salt RoleID
3 John Jamieson dsd [email protected] abac123 U
または
UserId FirstName LastName Password EmailAddress Salt RoleID
3 Aaron Smith abc [email protected] 123 A
この問題を解決していただきありがとうございます.Microsoft SQL Serverのストアドプロシージャは、mssqlに比べて適切ではありません。 –
一般的に、私はMySQLストアドプロシージャが問題のない価値があると感じています。彼らは開発が難しく、ドキュメンテーションは貧弱です。パッケージやデバッグはサポートしていません。彼らはコンパイルせず、そのパフォーマンスは悪いです。 MySQLユーザーコミュニティのほとんどの開発者は、プロシージャを使用せず、SQL文をアプリケーションコードに記述するだけです。 –