获取最后插入的ID的SQL标准是什么?如果有这样的事情。
mysql:LAST_INSERT_ID() postgresql:…返回f_id mssql:SCOPE_IDENTITY() …更多示例在这里…
我的意思是,所有数据库为此都具有不同的实现,对于这样的常见任务没有标准吗?
查看此答案检索SQL中插入的行ID
简而言之,除了MAX(ID)之外,没有跨数据库的方法可以做到这一点-但这不是保证的结果,并且有很多陷阱,例如
与身份/自动编号/ auto_increment /顺序有关的ANSI标准首次出现在SQL:2003中,等待所有主要的RDBMS实施。它很可能类似于Oracle / PostgreSQL序列。
SQL:2003标准对SQL:1999的所有部分(也称为SQL3)进行了较小的修改,并正式引入了一些新功能,例如: -序列生成器,它允许标准化序列
SQL:2003标准对SQL:1999的所有部分(也称为SQL3)进行了较小的修改,并正式引入了一些新功能,例如:
-序列生成器,它允许标准化序列
SQL:2003的另一个更改是,OUTPUT USING CLAUSE但是关于它的信息很少。Sybase和SQL Server对其进行了不同的操作,因此目前尚不清楚它将如何推出。SQL Server将其实现为
OUTPUT USING CLAUSE
INSERT INTO TBL(..) OUTPUT inserted.identity_col INTO @sometablevar VALUES(..)