Matthias Hoste
Matthias Hoste

Reputation: 125

MySQL query unknown error

I'm trying to run this query on MySQL server:

CREATE  PROCEDURE forum.eventlog_create(
i_UserID      INT,
i_Source      VARCHAR(128),
i_Description TEXT,
i_Type        INT,
i_UTCTIMESTAMP DATETIME)
MODIFIES SQL DATA
BEGIN

INSERT INTO forum.EventLog
(UserID, Source, Description, ´Type´)
VALUES (i_UserID, i_Source, i_Description, i_Type);

END;

However upon executing it I get the following error:

Error Code: 1064. 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 12

and I'm unable to fix it. I tried to search for a solution and asked a co-worker but we were unable to find the solution, as last resort I decided to ask it here.

I get error code 1064 but the right syntax near '' is the message and I dont understand what the problem could be. It would be easier if it said which syntax gives the error, I only get the line number. Thank you for your time

Upvotes: 0

Views: 497

Answers (2)

Shubham Dixit
Shubham Dixit

Reputation: 1

Try this

DELIMITER $$
CREATE PROCEDURE forumeventlog_create() 
BEGIN 
declare i_UserID INT DEFAULT 0; 
declare i_Source VARCHAR(128) DEFAULT null; 
declare i_Description TEXT DEFAULT null; 
declare i_Type INT DEFAULT 0; 
declare i_UTCTIMESTAMP DATETIME DEFAULT null ; 

INSERT INTO forum.EventLog
(UserID, Source, Description, ´Type´)
VALUES (i_UserID, i_Source, i_Description, i_Type);

END $$
DELIMITER ;

You can call this by

CALL forumeventlog_create()

OR

 DELIMITER $$
   CREATE PROCEDURE forumeventlog_create(i_UserID INT,i_Source VARCHAR(128),i_Description TEXT,i_Type INT,i_UTCTIMESTAMP DATETIME) 
            BEGIN 
            INSERT INTO forum.EventLog 
    (UserID, Source, Description, ´Type´) 
        VALUES (i_UserID, i_Source, i_Description, i_Type); 

            END $$
            DELIMITER ;

Upvotes: 0

P.Salmon
P.Salmon

Reputation: 17665

There is one error caused by the escape character around type which should be either backticks or dropped and you should try setting delimiters https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html

delimiter $$

CREATE  PROCEDURE eventlog_create(
i_UserID      INT,
i_Source      VARCHAR(128),
i_Description TEXT,
i_Type        INT,
i_UTCTIMESTAMP DATETIME)
MODIFIES SQL DATA
BEGIN

INSERT INTO forum.EventLog
(UserID, Source, Description, `Type`)
VALUES (i_UserID, i_Source, i_Description, i_Type);

END $$

delimiter ;

Upvotes: 3

Related Questions