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语法错误;检查对应于你的MySQL服务器版本正确的语法附近
'End BEGIN update users set LastName = LastName where UserID = Us' at line 16
使用然后我会用这样的调用存储过程的手册:
call updateusers(3,'John','Jamieson','dsd','[email protected]','abac123','U')
的输出,我会希望得到的是,例如,如果我想更新来自:
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
谢谢,解决了这个问题,你是正确的MySQL存储过程的文档的例子是不是比较好的mssql。 –
一般来说,我发现MySQL存储过程是不值得的麻烦。他们很难发展,而且文件很差。他们不支持包或调试。他们不编译,他们的表现很差。 MySQL用户社区中的大多数开发人员不使用过程,他们只是在其应用程序代码中编写SQL语句。 –