1

構文の問題がある可能性があります(SQLコマンドとエラーを以下にコピーします)-Ubuntu11でMySQLv5.1.63を使用しています(dbNameはデータベースの名前であり、記載されているフィールドは適切なデータ型/長さでUSERSテーブルにあります)。これをトラブルシューティングするための提案は大歓迎です。

use dbName;
DELIMITER //
CREATE PROCEDURE sp_insertTest
(
IN p_ID INT(11),
IN p_UserID VARCHAR(40),
IN p_Email VARCHAR(30)
)
BEGIN
INSERT INTO USERS
(
ID,
UserID,
Email
)
VALUES
(
p_ID,
p_UserID,
p_Email
)
END//
DELIMITER;

上記のステートメントを含むファイルをソースすると、エラーが発生します。

ERROR 1064 (42000): 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 'END' at line 32
ERROR 1064 (42000): 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 'DELIMITER' at line 1

前もって感謝します。

4

1 に答える 1

0

END//との後にスペースを追加しDELIMITER;、挿入された値の後にセミコロンを追加してみてください。修正された手順は次のとおりです。

DELIMITER //
CREATE PROCEDURE sp_insertTest
(
    IN p_ID INT(11),
    IN p_UserID VARCHAR(40),
    IN p_Email VARCHAR(30)
)
BEGIN
INSERT INTO USERS
(
    ID,
    UserID,
    Email
)
VALUES
(
    p_ID,
    p_UserID,
    p_Email
);
END //
DELIMITER ;
于 2012-06-22T20:28:59.830 に答える