0

我使用 MYSQL Workbench 在 Visual Studio 中创建了一个带有 MYSQL 的项目。它工作正常。然后我去我的托管服务提供商并尝试添加存储的过程

错误 SQL 查询:

创建过程 spLogin_VerifyUser( IN User VARCHAR( 50 ) , IN Pass VARCHAR( 50 ) , OUT ChurchID INT ) BEGIN DECLARE ChurchIDTemp INT DEFAULT 0;

MySQL 说:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 '' 附近使用正确的语法

当我尝试添加以下存储过程时:

create procedure spLogin_VerifyUser(IN User VARCHAR(50),IN Pass VARCHAR(50),OUT ChurchID INT)
begin
DECLARE ChurchIDTemp INT DEFAULT 0;
select idchurch into ChurchIDTemp FROM loginusers
WHERE Username=User and Password=Pass;
select IFNULL(ChurchIDTemp,0) into ChurchID;
end
;;
4

3 回答 3

1

尝试

delimiter |
create procedure spLogin_VerifyUser(IN User VARCHAR(50),IN Pass VARCHAR(50),OUT ChurchID INT)
begin
    DECLARE ChurchIDTemp INT DEFAULT 0;
    select idchurch into ChurchIDTemp FROM loginusers
    WHERE Username=User and Password=Pass;

    select IFNULL(ChurchIDTemp,0) into ChurchID;
end;
|
于 2012-05-28T16:18:51.170 回答
0

是完整版的 MySQL 还是社区版?

社区版是免费的,但不允许存储过程。

(几年前我也遇到过同样的问题)

于 2012-05-28T16:18:40.780 回答
0

这是一个常见的错误。

您可能已经知道 mySQL 允许过程,但 phpMyAdmin 允许您设计它们。现在,如果您已经在其他地方编写了一个并希望 phpMyAdmin 简单地执行它,那么请确保:

  1. 您没有免费的社区版 mySQL,因为它不允许存储过程。我相信这是不同版本和 phpMyAdmin 之间的兼容性问题。检查以下可能的解决方案。

参考这个:http ://tycoontalk.freelancer.com/the-database-forum/117270-phpmyadmin-and-procedures.html

在数据库的 PhpMyAdmin 列表中应该是 information_schema。其中有一个表名 ROUTINES。你通过发出一个查询它

select ROUTINE_NAME from ROUTINES;

这将输出存储过程名称的列表。要查看过程,请运行查询

show create procdure [procedure name from above select]
于 2012-05-28T16:25:02.553 回答