0

localhost での開発中に MySQL Workbench を使用すると、次のストアド プロシージャが正常に動作します。

CREATE PROCEDURE `follow`(IN in_follower INT(11), IN in_followee VARCHAR(45))
BEGIN
INSERT INTO follower (follower_id, followee_id)
VALUES (in_follower,(SELECT `user_id` FROM user WHERE `username` = in_followee));
END

1and1 のサーバーのプロシージャを作成しようとすると、次のエラーで SQL が拒否されます。

エラー #1064 - SQL 構文にエラーがあります。4行目のnear ''を使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

一体全体?

4

1 に答える 1

0

docsに従って、構文は次のようにする必要があると思います。

CREATE PROCEDURE `follow`(IN in_follower INT(11), IN in_followee VARCHAR(45))
    INSERT INTO follower 
    (follower_id, followee_id)
    SELECT in_follower, `user_id` 
    FROM   user 
    WHERE  `username` = @in_followee);
END

正直なところ、元の構文がローカルで機能したことに驚いています...

于 2012-09-28T14:13:47.610 に答える