adviner
adviner

Reputation: 3567

mariadb declare variable syntax error

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', '[email protected]', 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

Upvotes: 7

Views: 20389

Answers (4)

Hamideh Kavoosi
Hamideh Kavoosi

Reputation: 1

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

Upvotes: 0

MYLRAJ
MYLRAJ

Reputation: 71

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', '[email protected]', 1, 1, NOW());

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

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

Upvotes: 1

Helder Velez
Helder Velez

Reputation: 207

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 ! )

Upvotes: 11

Paul Draper
Paul Draper

Reputation: 83283

Remove the DECLARE. It is not neccessary.

Upvotes: 2

Related Questions