获取刚插入数据库中的信息的序列号
2017-05-18 10:30
706 查看
根据数据库范式,每个表都应该有一个主键来唯一标识每个行。一般使用自增序列填充这个主键。
oracle有数据库提供的sequence,mysql是啥暂时没注意。
自增序列可以使用数据库提供的序列方法,也可以在自己的代码中插入。只要能得到不重复的序列值就可以。手动撸还可以实现序列的连续不缺失,虽然用处不大。
如何获得刚插入的序列,之前问过老师,说在插入后立刻查询数据库最后一条数据。机智,不过并发大的话可能出错(使用了事务管理后插入语句和同一事务中的查询是否不会被其它并发影响?这个我尚不清楚)。网上还有什么last方法的,原理大同小异。
还有就是逻辑设计的时候就避免取序列,比如 用户发送信息,这个发送事务要调用短链接口,再把短链存进这一行发送。那么可以设计个审核,审核通过后再添加短链发送,这样就不用查序列了,因为审核时肯定是逐条审核知道序列的,道理上也更合理。
oracle有数据库提供的sequence,mysql是啥暂时没注意。
自增序列可以使用数据库提供的序列方法,也可以在自己的代码中插入。只要能得到不重复的序列值就可以。手动撸还可以实现序列的连续不缺失,虽然用处不大。
如何获得刚插入的序列,之前问过老师,说在插入后立刻查询数据库最后一条数据。机智,不过并发大的话可能出错(使用了事务管理后插入语句和同一事务中的查询是否不会被其它并发影响?这个我尚不清楚)。网上还有什么last方法的,原理大同小异。
还有就是逻辑设计的时候就避免取序列,比如 用户发送信息,这个发送事务要调用短链接口,再把短链存进这一行发送。那么可以设计个审核,审核通过后再添加短链发送,这样就不用查序列了,因为审核时肯定是逐条审核知道序列的,道理上也更合理。
相关文章推荐
- Java连接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash
- 2.ansible2.2 callback插件获取硬件信息并插入到数据库中
- 黄聪:destoon常用数据库操作(插入、更新、删除、获取一行信息)
- Slatstack高级技巧(二) 使用django解析salt-api获取的信息插入数据库
- 3.ansible1.7.2 callback插件获取硬件信息并插入到数据库中
- 系统表获取数据库的元数据信息
- 如何获取磁盘分区信息(包括卷标、序列号、类型、总大小、剩余大小)
- 使用Ado.net获取数据库架构信息
- 获取数据库表的一些基本信息
- 用Sharepoint的UserProfile class来获取AD中的信息,插入到新建的table中,并自动sendmail给新建立的帐号。
- 使用Ado.net获取数据库架构信息
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- 使用DatabaseMetaDate获取数据库信息
- 使用Ado.net获取数据库架构信息
- 获取数据库信息(二)
- [转]获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- 获取数据库结构信息
- JSP利用JNI获取硬盘信息(型号,序列号,容量...) ,提供固定下载地址
- 获取数据库中所有表的索引信息
- 获取数据库表架购信息