MySQL INSERT与OUTPUT一样,如MSSQL

Aar*_*onM 10 mysql sql-server

我很确定MySQL没有MSSQL所做的INSERT INTO表OUTPUT [列值] - http://msdn.microsoft.com/en-us/library/ms177564.aspx(或http://blogs.msdn. com/b/sqltips/archive/2005/06/13/output-clause.aspx)

什么是复制这个的简单方法?(我正在将MSSQL应用程序移动到MySQL.'OUTPUT'是一个唯一的标识符和当前的int,所以也许我只能SELECT MAX(int)并添加一个,并在插入之前生成一个UID?)

谢谢

Gal*_*alz 10

如果此值是自动增量字段,则可以SELECT LAST_INSERT_ID();在运行插入后运行,并且您将获得插入此字段的最后一个值.请参阅:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

  • 如果其他人在您的插入和选择最后一个插入之间插入了什么呢?你必须把它包装在交易中吗? (3认同)
  • @LorenPechtel No.`LAST_INSERT_ID()`是连接的本地.本质上,它返回***插入的最后一个ID,即使其他连接可能同时插入了行. (3认同)
  • 遗憾的是,如果进行批量插入,这根本没有帮助,特别是你需要在事后进一步匹配并需要更多的id - 导致额外的选择. (2认同)