作者:紫竹林素食坊 | 来源:互联网 | 2024-10-27 12:26
在使用C#编程语言从MySQL数据库中获取最近插入的记录ID时,我遇到了一些问题。具体来说,在执行以下SQL语句时出现了困难:`STARTTRANSACTION;SET@LASTID=0;INSERTINTOAccounts(Col1,Col2)VALUES('value1','value2');SET@LASTID=LAST_INSERT_ID();COMMIT;`本文将详细探讨如何正确实现这一功能,并提供解决方案和最佳实践。
从MySql返回最后插入的id
我在使用以下查询时遇到了一些麻烦:
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服务器。
提前致谢。
使用
SELECT LAST_INSERT_ID();
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
将最后一个语句更改为:
上述就是C#学习教程:从MySql返回最后插入的id分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记
SELECT CAST(@LASTID AS integer) as last_id_from_accounts;