1

ストアドプロシージャのINパラメータを指定して、テーブルに新しい行を挿入するストアドプロシージャを作成するMySQLスクリプトを作成しました。ただし、スクリプトを実行しようとすると、次のエラーが表示されます。

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

これは基本的にスクリプトファイルのストアドプロシージャです。

CREATE PROCEDURE 'packagename'.`procedureName`
(IN param1 DATE, 
 IN param2 TIME, 
 IN param3 VARCHAR(45), 
 IN param4 VARCHAR(100))
BEGIN
    INSERT INTO packagename.table (`param1`, `param2`, `param3`, `param4`) 
    VALUES (param1, param2, param3, param4);
END;

何か案は?

4

1 に答える 1

1
  • 変化するDELIMITER
  • パッケージ名に一重引用符の代わりにバッククォートを使用する
  • テーブルの名前がtablepackagenameにある場合。table、バッククォートでエスケープします

クエリ、

DELIMITER $$
CREATE PROCEDURE `packagename`.`procedureName`
(
      IN param1 DATE, 
      IN param2 TIME, 
      IN param3 VARCHAR(45), 
      IN param4 VARCHAR(100)
)
BEGIN
     INSERT INTO packagename.`table` (`param1`, `param2`, `param3`, `param4`) 
            VALUES (param1, param2, param3, param4);
END $$
DELIMITER ;
于 2012-11-19T02:52:05.360 に答える