【发布时间】:2011-07-25 01:47:09
【问题描述】:
我很确定 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,所以也许我可以选择 MAX (int) 并添加一个,并在插入之前生成一个 UID?)
谢谢
【问题讨论】:
-
列上是否有 AUTO_INCREMENT?如果是,请使用
LAST_INSERT_ID。如果没有,SELECT MAX 将不得不这样做,确实...... -
请注意,MS SQL 也有类似
LAST_INSERT_ID()的功能: SET@logSqlId = SCOPE_IDENTITY();您可以使用 logSqlId 作为输出参数或从中使用SELECT。同样对于未来的读者,如果从大型商业系统之一迁移,请考虑使用 Postgres。它的功能更接近高端数据库系统,在某些情况下甚至超过了它们。
标签: mysql sql-server