art*_*prs 7 mysql sql sql-server postgresql standards
获取最后一个插入ID的sql标准是什么?如果有这样的事情.
mysql:LAST_INSERT_ID()
postgresql:... RETURNING f_id
mssql:SCOPE_IDENTITY()
...这里有更多例子......
我的意思是,所有数据库都有不同的实现,这种常见任务没有标准吗?
请参阅此答案在SQL中检索插入的行ID
简而言之,除了MAX(ID)之外,没有交叉数据库方法可以做到这一点 - 但这不是保证结果并且有许多缺陷,例如
与identity/autonumber/auto_increment/sequences相关的ANSI标准首先出现在SQL:2003中,等待所有主要RDBMS的实现.它很可能类似于Oracle/PostgreSQL序列.
SQL:2003标准对SQL的所有部分(也称为SQL3)进行了少量修改,并正式引入了一些新功能,例如:
- 序列生成器,允许标准化序列
SQL:2003的另一个变化是,OUTPUT USING CLAUSE但关于它的信息非常少.Sybase和SQL Server已经做了不同的事情,所以还不清楚它将如何发展.SQL Server将其实现为
INSERT INTO TBL(..)
OUTPUT inserted.identity_col
INTO @sometablevar
VALUES(..)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4274 次 |
| 最近记录: |