Anton
Anton

Reputation: 127

how to return last inserted id in MySQL procedure

I use the procedure for user registering

DELIMITER //
CREATE PROCEDURE `regist`(IN login VARCHAR(20), IN password VARCHAR(32), IN ip VARCHAR(15))
BEGIN
INSERT INTO `users` (`login`, `password`, `ip`) VALUES (login, password, ip);
END
//
DELIMITER ;

but how to make the procedure return last inserted id?

Upvotes: 0

Views: 4806

Answers (2)

sarwar026
sarwar026

Reputation: 3821

I've added a OUT parameter in your procedure.

DELIMITER //
CREATE PROCEDURE `regist`(IN login VARCHAR(20), IN password VARCHAR(32), IN ip VARCHAR(15), OUT lastId INT)
BEGIN
INSERT INTO `users` (`login`, `password`, `ip`) VALUES (login, password, ip);
SET @last_id = LAST_INSERT_ID();
END
//
DELIMITER ;

Upvotes: 1

Dave
Dave

Reputation: 3288

In mysql it's LAST_INSERT_ID()

Upvotes: 0

Related Questions