SQL自增字段的相关总结-(主要SqlServe,Oracle)
来源:互联网 发布:淘宝的发票在哪里申请 编辑:程序博客网 时间:2024/06/09 20:58
首先是如何让字段自增
SqlServer中,可以通过给字段设置IDENTITY属性来设置自增字段,但是,这种方法有一些需要注意的地方:
1.SqlServer并不能保证字段中不出现重复的数据,原因是在多用户并发访问数据库的情况下,可能会出现这种问题,而且自增字段不一定为主键。但是Mysql没有这个问题,因为用auto_increment设置的自增字段,必须为主键,否则会创建失败。
2.导入数据的问题,在导入数据的时候,此自增字段的值可能已经被使用了,这样就会无法导入,可以使用SET IDENTITY_INSERT <table name> on来暂时停用该表的自增功能,这样就可以插入带有该字段的数据了。需要注意的是:当使用该语句停用自增功能后,插入的数据中必须带有自增字段的值,否则会发生异常。
3.跳号的问题,如果事务中某条插入语句执行失败而回滚,该自增字段仍然会自增,不会还原成事务之前的最大值。
Oracle中使用的是SEQUENCE,而在MySql中,是用的auto_increment:
与SqlServer不同的是,Oracle的自增字段是自己维护的,也就是说,没有什么特殊的命令来定义一个字段可以自增,而是利用SEQUENCE在插入数据的时候,人工给使数据自动增长。这样的就可以避免Sqlserver中的第2个问题,但是仍然存在跳号的问题。
SEQUENCE如何使用:
语法:
CREATE SEQUENCE MySequence --名称 START WITH 1 --起始值INCREMENT 1 --增长值MINVALUE 1 --最小值MAXVALUE 9999999 --最大值NOCACHE --不缓存NOCYCLE --当取最大值后,时候循环
MySequence.NEXTVAL --取得下一个值MySequence.CURRVAL --获取当前最大值
如何获取当前自增字段的最大值
SqlServer:IDENT_CURRENT()
Oracle:MySequence.CURRVAL
- SQL自增字段的相关总结-(主要SqlServe,Oracle)
- Oracle代替sql Server自增字段的方法
- oracle 的自增字段。
- oracle 字段相关操作sql
- ORACLE自增字段
- oracle 自增字段
- oracle字段自增
- oracle 自增字段
- oracle自增字段
- oracle 自增字段
- oracle自增字段
- Oracle自增字段
- oracle 自增字段
- oracle 自增 字段
- Oracle自增型字段的实现
- Oracle自增字段的创建
- ORACLE自增字段的创建
- Oracle自增型字段的实现
- mysql 从一个表中查数据,插入另一个表。。
- AspxGridView 获取行数
- Android 根据url地址显示图片
- 每天一算法(输出链表倒数第k个元素)
- Linux系统中添加sudoers
- SQL自增字段的相关总结-(主要SqlServe,Oracle)
- 一篇关于校园的爱情故事:伤感
- java 中的override & overload 比较
- iOS开发:推送通知简述及开发实践
- SQL,PL/SQL 数据类型一览表
- Comsenz 核心产品 Discuz! X2.5 正式版.【更新于 20120518】
- 玩转电脑常识篇章一
- Ubuntu下更改gcc版本的简便方法
- Robolectric_配置时cannot find class 'org.junit.Test' on project build path的问题