0

私はSQLを初めて使用し、トレーニングのほとんどはMSSQLで行われていますが、MYSQLのクラスを受講しています. 問題を引き起こしているストアド プロシージャがあります。区切り文字を // に設定しています。

CREATE PROCEDURE AddComment
(
    name varchar(50),
    emailAddress varchar(50),
    Comments text
)
BEGIN
DECLARE ComName varchar(50);
DECLARE ComID int;


SELECT name into ComName;

SELECT ID into ComID from Commenters WHERE names = ComName;

if ComID = NULL
    BEGIN
        INSERT INTO COMMENTERS ('names', 'emailAddresses') values (name,   emailAddress);
        SELECT ID into ComID from Commenters WHERE names = ComName;
    END

    INSERT INTO COMMENTS ('commentersID', 'Comments') values (ComID, Comments);

END;
//

編集

これは私が今持っているものです:

CREATE PROCEDURE AddComment
(
    Username varchar(50),
    UseremailAddress varchar(50),
    UserComment text
)
BEGIN
DECLARE ComName varchar(50);
DECLARE ComID int;


SELECT Username into ComName;

SELECT ID into ComID from Commenters WHERE names = ComName;

if ComID = NULL
    BEGIN
        INSERT INTO COMMENTERS(names,emailAddresses) values (Username, UseremailAddress);
        SELECT ID into ComID from Commenters WHERE names = ComName;
    END

    INSERT INTO COMMENTS(commentersID, Comments) values (ComID, UserComment);


END;
//

そして、私が得ているエラーは次のとおりです。

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

何か案は?

4

1 に答える 1

0

insert ステートメントで列名と値を逆にコーディングしています。

そのはず

 INSERT INTO COMMENTERS (name, emailAddress) values ('names', 'emailAddresses') ;
于 2012-12-01T01:06:05.457 に答える