我在使用以下查询时遇到了一些麻烦:
START TRANSACTION;
SET @LASTID = 0;
INSERT INTO `Accounts` (`Col1`,`col2`,`col3`,`col4`)
VALUES (@param1,@param2,@param3,@param4);
SET @LASTID = last_insert_id(); -- This is what I need
INSERT INTO `Users` (`usr1`,`usr2`,`usr3`,`usr4`)
VALUES (@usr1,@usr2,@usr3,@usr4);
SELECT @LASTID;
COMMIT;
基本上,我需要从accounts表中返回最后一个插入的ID,但是当运行SELECT @LASTID时,MySql返回一个blob而不是一个值,我在C#asp.net中访问时遇到了麻烦
有没有简单的方法将此值作为int / varchar?从代码中的blob转换我觉得有点矫枉过正,我想把它提升到Mysql服务器。
提前致谢。
答案 0 :(得分:4)
使用
SELECT LAST_INSERT_ID();
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
答案 1 :(得分:1)
将最后一个语句更改为:
SELECT CAST(@LASTID AS integer) as last_id_from_accounts;