MySql例程的问题

MySql例程的问题,mysql,routines,Mysql,Routines,我在制作MySql例程时遇到了问题 代码如下: DELIMITER '$$'; CREATE PROCEDURE User.Login(IN UserName CHAR(32), IN PWord CHAR(32)) BEGIN Select `userID`, `userType`, `userMainEmail`, `groupID` From `at_users` Where `userName` = UserName And `userPass` = PWord

我在制作MySql例程时遇到了问题

代码如下:

DELIMITER '$$';
CREATE PROCEDURE User.Login(IN UserName CHAR(32), IN PWord CHAR(32))
BEGIN
Select `userID`, `userType`, `userMainEmail`, `groupID`
    From `at_users`
    Where `userName` = UserName And `userPass` = PWord
    LIMIT 1
FOR UPDATE;

    Update `at_users`
    Set `lastLoginAt` = now()
    Where `userName` = UserName And `userPass` = PWord;
END$$
它应该做的是一个简单的登录任务,几乎在任何地方都可以完成。。。获取用户记录,然后使用now()更新表

我所做的是:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your     MySQL server version for the right syntax to use near '' at line 12
第12行是结束前的那一行$$

是,所有字段和表都存在。:)

编辑:新代码

DELIMITER //;
CREATE PROCEDURE User.Login(IN UserName CHAR(32), IN PWord CHAR(32))
BEGIN
Select `userID`, `userType`, `userMainEmail`, `groupID`
    From `at_users`
    Where `userName` = UserName And `userPass` = PWord
    LIMIT 1
FOR UPDATE;

    Update `at_users`
    Set `lastLoginAt` = now()
    Where `userName` = UserName And `userPass` = PWord;
END//
DELIMITER ;
在登录并选择要使用的适当数据库之后,我正在从命令行尝试这段代码

在最后一行“DELIMITER;”之后什么事也没发生,我留在->线上,明白了

以下是我最后不得不使用的代码:

DELIMITER //
CREATE PROCEDURE UserLogin(IN UserName CHAR(32), IN PWord CHAR(32))
    BEGIN
        Select `userID`, `userType`, `userMainEmail`, `groupID`
        From `at_users`
        Where `userName` = UserName And `userPass` = PWord
        LIMIT 1
        FOR UPDATE;

        Update `at_users`
        Set `lastLoginAt` = now()
        Where `userName` = UserName And `userPass` = PWord;
    END//
DELIMITER ;

检查语法:。它应该是
分隔符$$不带引号。我正试图通过phpMyAdminSQL选项卡运行此操作。稍后我将直接在服务器上尝试在最后一行之后(在
结束$$
之后)也尝试了该操作。当我这样做时,我没有得到任何错误,但例程不是createdok。我也在尝试从shell做这件事,但什么都没有发生。我正在尝试的新方法出现了一个问题,您可以保留
$
作为分隔符。这完全取决于您,只要代码中没有其他地方使用分隔符。这怎么会太本地化了???!!!