如何准确高效的获取数据库新插入数据的主键id
2016-01-21 15:51
507 查看
例如我们新建了一张表UserInformation,字段如下Id,为主键,自增,其它字段Name,Pwd,Email
然后我们来执行一个新增插入操作:
insert into UserInformation
(Name,Pwd,Email) values('小明','123','111')
我们想在新增插入数据的时候获取到插入这条数据的主键的值是多少,
解决的方法有两种:
1、一种是直接输入某个字段,然后查询,代码如下:
insert into UserInformation
(Name,Pwd,Email) values('小张','123','111')
select @@identity
插入后获取,但是这种并不是完全准确的
insert into[Test1].[dbo].[UserInformation]
(Name,Pwd,Email) values('小张','123','111')
select @@identity
涉及到数据库锁,如果调整了数据库锁,当数量级别特别大,有大量数据并发插入的时候可能会有误差。
2、另一种方法是在插入的同时进行输出,代码如下:
insert into UserInformation
(Name,Pwd,Email) output inserted.Id values('小明','123','111')
除了主键,也可以输出别的字段,准确高效。
推荐使用第二种
然后我们来执行一个新增插入操作:
insert into UserInformation
(Name,Pwd,Email) values('小明','123','111')
我们想在新增插入数据的时候获取到插入这条数据的主键的值是多少,
解决的方法有两种:
1、一种是直接输入某个字段,然后查询,代码如下:
insert into UserInformation
(Name,Pwd,Email) values('小张','123','111')
select @@identity
插入后获取,但是这种并不是完全准确的
insert into[Test1].[dbo].[UserInformation]
(Name,Pwd,Email) values('小张','123','111')
select @@identity
涉及到数据库锁,如果调整了数据库锁,当数量级别特别大,有大量数据并发插入的时候可能会有误差。
2、另一种方法是在插入的同时进行输出,代码如下:
insert into UserInformation
(Name,Pwd,Email) output inserted.Id values('小明','123','111')
除了主键,也可以输出别的字段,准确高效。
推荐使用第二种
相关文章推荐
- Oracle模糊查询
- mysql 分页sql
- MySQL视图的基本操作
- mysql add index演变历程
- Oracle 多分页查询 重复数据
- 查看修改MySQL字符集
- MySQL存储过程的动态行转列
- mysql 基础
- ORA-01565: error in identifying file '+DATA/ORACLE/spfileORACLE.ora'
- java 并发插入数据到oracle
- 如何设置memcached来共享php的session
- SQL Server 查询结果多行数据拼接
- PL/SQL配置技巧
- [转]Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- MySQL5.7的新特性
- Oracle 的连接方式ori和thin
- 归档—监控ORACLE数据库告警日志
- Redis安装教程
- Redis集群方案,Codis安装测试
- Redis 优化配置