I’m new to MySQL and databases in general. I’m trying to create a MySQL stored procedure but keep getting a vague syntax error:
“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 ‘sps; EXECUTE stmt USING nn,ee,ll,cc,uu; COMMIT END’ at line 11”
If I remove the line “PREPARE stmt …” then the stored procedure is created. When I put the line back in, I get the error again.
What is it that I am doing wrong?
DELIMITER //
CREATE PROCEDURE `account_create` (nn VARCHAR(25),
ee BIGINT,
ll BIGINT,
cc VARCHAR(100),
uu VARCHAR(25))
BEGIN
DECLARE newId BIGINT;
DECLARE sps VARCHAR(50);
START TRANSACTION;
set sps = 'INSERT INTO account SET name=?, entity=?, ledger=?, tblname=tmpXXX, creation_date=CURDATE(), comment=?, uname=?';
PREPARE stmt FROM sps;
COMMIT;
END//
You must use a User Defined Variable to execute a prepared statement. Rewrite as: