http://ewoyaofei.blog.163.com/blog/static/343562612010314115446284/

1、identity

Oracle, DB2, pgSQL中都有sequence的概念,这个概念比Identity先进很多,在Sybase中没有Sequence对象,与之相对应的是Identity

2、identity 的创建

identity跟sequence对象完成的功能类似,但是有一定的约束,每个table只能有一个identity的列,列的类型必须是numberic(n,0).

sql 代码

  1. create table table_name
  2. (column_name numeric(precision ,0) identity)

3、identity gap的产生:

缺省情况下Sybase Adaptive Server会给identity字段分配一段数字到内存中,在磁盘上记录被分派到内存中的最大的数值,

这样就不用每次插入数据都需要写磁盘来记录当前identity的最大值,而是直接在内存中计算,以提高performance,默认分配到内存的

数值段是identity 字段最大值的 0.05%,这样虽然提高了效率但是如果server fail或者no wait重起,那么内存中的数字段就会丢失,DB Server

会从记录在磁盘上的identity最大值开始计算identity值,就会产生gap,如果按照默认值来计算,server fail 和no wait重起2000次,那么

identity字段就会溢出,必须增加identity字段的长度,其实这期间会有大量的gap

4、要点提示:

a:定义identity时要对数据量有个良好的估计,例如上面的代码中identity的最大值时10的precision次幂-1,对于所有的identity都定义

numberic(18,0)是不合适的,不可能所有的表都有几十万亿的数据量

b:定义identity时要对数据量的增长情况有个良好的估计,合理设置idnetity_gap的值,而不是默认的值

sql 代码

  1. create table table_name
  2. (column_name numeric(precision ,0) identity)
  3. with identity_gap = value

这个value值会覆盖db 默认的是identity 字段最大值的 0.05%这个值。

在Sybase中使用

sp_chgattribute 'TableName', 'identity_gap', gap_value

来更改gap_value为一个合理的值

5、@@IDENTITY

可以使用 select @@IDENTITY 获取 insert 之后的值

Sybase identity 字段相关推荐

  1. mysql identity sql,SQL Server的Identity字段使用/复制/重设

    SQL Server的Identity字段使用/复制/重设 在数据库中, 常用的一个流水编号通常会使用 identity 字段来进行设置, 这种编号的好处是一定不会重复, 而且一定是唯一的, 这对ta ...

  2. sql server 修改IDENTITY 字段 的统计当前值

    一个表数据是从另一服务器同步过来的.现在数据已超过了 3514万条,但插入值时,提示不能插入重复键值 320. 查看表的统计时间,看到是N年前统计的. 手工更新表统计信息: UPDATE STATIS ...

  3. 错误An entity with the same identity already exists in this EntitySet RIA

    错误信息:缺少对象,An entity with the same identity already exists in this EntitySet RIA 解决方案: 1.如果你的表是要更新的,需 ...

  4. bcp入库oracle,Sybase中的BCP用法实践 与 Oracle的SQLLDR用法实践

    关于BCP的用法法,网上有很多资料,但要经过自已的实践来证实才能为已所用,因网上的东东有些是转来转去,会有遗误之处,所以对网上的相关资料要广泛地多多地参考,不能迷信某一家之言,因为IT相关的东东存于着 ...

  5. 数据库中html数据类型,常用数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 ...

  6. 数据库mysql表常见字段大小_常用的数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 最大长度2000 ...

  7. 常用的数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小     ORACLE的数据类型  常用的数据库字段类型如下:  字段类型 中文说明 限制条件 其它说明  CHAR 固定长度字符串 最 ...

  8. Oracle/MSSQL/Mysql 常用数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下:   字段类型   中文说明   限制条件   其它说明   CHAR  固定长度字 ...

  9. Identity的知识

    在数据库中, 常用的一个流水编号通常会使用 identity 字段来进行设置, 这种编号的好处是一定不会重复, 而且一定是唯一的, 这对table中的唯一值特性很重要, 通常用来做客户编号, 订单编号 ...

最新文章

  1. 英国工会联盟报告:机器人技术和AI让三分之一的人失业
  2. 1063. Set Similarity (25)
  3. Matlab---傅里叶变换---通俗理解(一)
  4. 因新漏洞问题 Firefox 49发布时间将延期一周
  5. 内存泄漏的原因及解决办法_编程基础 | C++片段 指针、多态和内存分配
  6. 跟几个程序员聊了聊他们的每月薪资收入
  7. Linux文件的复制、删除和移动命
  8. Flink : exitCode=1 the main method caused an error: could not deploy yarn job cluster
  9. 力扣-62 不同路径
  10. VMware Workstation 備份與恢復虛擬機
  11. SharePoint 网站登录不上,3次输入用户名/密码白页
  12. 第一次参加本校大学生创新创业训练项目答辩的反思与总结
  13. 关于数字IC设计中分频后的慢速时钟和以快时钟触发的信号的关系处理
  14. JAVA 16方格排序游戏
  15. 格力除了被美的遏制,还面临离职员工的挑战
  16. RAID区别和特点(全)
  17. java 辗转相除_Java实现辗转相除法并求取最大公约数、最小公倍数
  18. win10 LATEX 安装使用 支持前向 后向 (TeX Live 2021+VSCode【不需要额外下载PDF阅览器,不需要跟换任何路径】)
  19. 寻求泰国居留权的美国投资者数量大增
  20. golang 实战企业网盘

热门文章

  1. LeetCode Algorithm 589. N 叉树的前序遍历
  2. 最近面试一些厂的面经整理(阿里,腾讯,字节等)
  3. Spreadsheet Tracking
  4. 大数据互联网架构阶段 前台系统架构 跨域请求
  5. Exp3 免杀原理与实践 20164309
  6. 【Tools】Navicat Premium12安装教程
  7. 【Tools】Linux远程连接工具(PuTTY)
  8. 【Linux网络编程】因特网的IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?
  9. ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)
  10. 记录安装mysql5.7.24遇到的坑