Mickey Espiritu
Mickey Espiritu

Reputation: 101

MySQL: Stored Procedure Insert Statement Error

I created a MySQL script that creates a Stored Procedure which Inserts a new row into a table given the IN parameters of the Stored Procedure. However, when we try to run the script, this error is shown:

ERROR 1064 (42000) at line 22: 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 3

This is basically the stored procedure in the script file:

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;

Any ideas?

Upvotes: 1

Views: 5321

Answers (1)

John Woo
John Woo

Reputation: 263683

  • change DELIMITER
  • use backtick instead of single quote in the package name
  • if the name of your table is table in packagename.table, escape it with backtick

query,

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 ;

Upvotes: 1

Related Questions