Question

Im using mariadb with heidisql to execute sql:

DECLARE @AccountID INT;

Insert Into accounts(first_name, mi, last_name, email, is_admin, is_enabled, date_created) Values('testfirstname', 'a', 'testlastname', 'user@email.com', 1, 1, NOW());

set @AccountID = Last_Insert_Id();

I keep getting an error:

QL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@AccountID INT' at line 1 */

I was looking at the usage of Declare but it says that its used in a Function. Ive tried with a BEGIN/END before the DECLARE and after with the same error.
I new to the mysql syntax where this would work in sql server. so if anyone can let me know what i got wrong it would be appreciated.

Thanks

Was it helpful?

Solution 2

Remove the DECLARE. It is not neccessary.

OTHER TIPS

I'm using mariadb version 10.0.19

The above problem is described and has an easy solution
here: Delimiters in the mysql Client

in short:

DELIMITER //
create function .. as usual
BEGIN
.. as usual
END
//
DELIMITER ;

( The accepted solution did not worked ! )

Just Ignore the DECLARE statement, and execute the Insert.

Insert Into accounts(first_name, mi, last_name, email, is_admin, is_enabled, date_created) Values('testfirstname', 'a', 'testlastname', 'user@email.com', 1, 1, NOW());

set @AccountID = Last_Insert_Id();
SELECT @AccountID;

Will get you the last inserted Id of the "accounts" table.

I had the same problem I created my stored procedure in design

enter image description here enter image description here

I wrote my stored procedure of function in BEGIN and END and it worked

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top