DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table lt;table namegt; alter column lt;column

DB2 自增长列测试
1当想将表中一列修改为自动增长时,可用下面命令:
Alter table

set not null
Alter table alter column
set generated always as identity (start with 1,increment by 1)
上面命令是在改一表中列的属性时,在网上找到的很有用。

2当修改表中一列自动增长的开始值时,可用下面的命令:
ALTER TABLE ALTER COLUMN RESTART WITH 18;

测试:

CREATE TABLE customer_orders_t (
order_id INT NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 1
INCREMENT BY 1
MINVALUE 1
NO MAXVALUE
NO CYCLE
NO CACHE
ORDER),
order_date DATE NOT NULL,
cust_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
price DECIMAL(10,2) NOT NULL,
status CHAR(9) NOT NULL,
PRIMARY KEY (order_date, order_id))


注:该列中的以及它本身的 IDENTITY 属性并没有保证所生成的序列值是唯一的。
但是, PRIMARY KEY 约束保证了表中行的唯一性。
为了确保只将自动生成的值插入标识列,他们指定了 GENERATED ALWAYS 子句。
使用最后一个生成的 order_id 来确定多少数据
选项 NO CACHE 和 ORDER 确保了在系统故障的情况下,不废弃未使用的标识值。

测试1

插入数据

insert into customer_orders_t values (default,current date,12,12,12,10.2,'2')

--成功


insert into customer_orders_t values (1,current date,12,12,12,10.2,'2')

-- 报错 因为:IDENTITY字段不允许指定值

--解决方案
ALTER TABLE customer_orders_t
ALTER COLUMN order_id
SET GENERATED BY DEFAULT


--创建orders_seq对象
CREATE SEQUENCE orders_seq
AS INT
START WITH 1
INCREMENT BY 1
MINVALUE 1
NO MAXVALUE
NO CYCLE
NO CACHE
ORDER


--插入数据
INSERT INTO customer_orders_t VALUES (NEXT VALUE FOR orders_seq, CURRENT DATE,12,12,12,10.2,'2')

1、命令行取sequence soc.nico_qian的下一个值:
db2 "values next value for soc.nico_qian"

2、命令行重置sequence soc.nico_qian:
db2 "alter sequence soc.nico_qian restart",重置后的值默认为创建SEQUENCE时的MINVALUE

3、命令行以指定值22重置sequence soc.nico_qian:
db2 "alter sequence soc.nico_qian restart with 22"

4、命令行重置表KS.CHECK_CONDITION的IDENTITY字段初始值为20:
db2 "ALTER TABLE KS.CHECK_CONDITION ALTER COLUMN identity_column_name RESTART WITH 20"

5、如果sequence被以命令行的方式重置,那么用到这个sequence的嵌入式C程序代码的绑定包
  的VALID字段会被修改为N,那么在下一次这个代码被调用的时候,DB2会自动重新绑定
   此代码的绑定包,,这个动作会给应用程序带来不可预知的后果,比如:如果这段代码是在很
   频繁的被用到的时间段内被重新绑定,那么极易造成死锁。
   同样的问题会出现在IDENTITY字段上。

【数据库】DB2 自增长列导入、导出测试

  • 微信
  • 分享
  • 【数据库】DB2 自增长列导入、导出测试
  • 相关标签:DB2导入导出 DB2 DB2 自增长列导入、导出测试 数据
  • 本文原创发布ki4网,转载请注明出处,感谢您的尊重!
    • 上一篇:配置MongoDB集群分片
    • 下一篇:Oracle 11g RAC 本地时间和通过listener连接时间不相同的问题

    相关文章

    相关视频

    • Mysql的底层封装
    • MySQL 主键与索引的联系与区别分析_Mysql
    • mysql5.5数据库data目录迁移方法详解_M...
    • 理解Mysql prepare预处理语句_MySQ...
    • DB2 自增长列导入、导出测试
    • mvc架构
    • nginx集群原理及配置4
    • nginx集群原理及配置3
    • nginx集群原理及配置2

    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 【数据库】DB2 自增长列导入、导出测试
  • 立即提交

    专题推荐

    • 【数据库】DB2 自增长列导入、导出测试独孤九贱-php全栈开发教程

      全栈 100W+

      主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

    • 【数据库】DB2 自增长列导入、导出测试玉女心经-web前端开发教程

      入门 50W+

      主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

    • 【数据库】DB2 自增长列导入、导出测试天龙八部-实战开发教程

      实战 80W+

      主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

    作者信息 【数据库】DB2 自增长列导入、导出测试

    ki4网

    认证0级讲师

    最近文章
    发布技术文章
    • 最新文章
    • 热门排行

      【数据库】DB2 自增长列导入、导出测试

    • MySQL在CentOS上执行自动备份
    • case when用法
    • 详解 MySQL int 类型的长度值问题
    • 在 MySQL 中,如何计算一组数据的中位数
    • MySQL 事务最全详解
    • 悲观锁和乐观锁的简述
    • MySQL常用操作及基础知识
    • 数据库基本理论详细介绍

      【数据库】DB2 自增长列导入、导出测试

    • mysql和oracle的区别有哪些
    • sql增删改查语句怎么写
    • DreamMail无法打开邮件数据库问题的解决办法
    • C语言计算两个数的最大公约数和最小公倍数
    • CentOS 7下MySQL服务启动失败的快速解决方法_MySQL
    • sqlserver和mysql区别有哪些
    • 分享五个著名的SQL注入漏洞扫描工具
    • 数据库范式(1NF 2NF 3NF BCNF)详解一
    推荐视频教程
  • 【数据库】DB2 自增长列导入、导出测试javascript初级视频教程
  • 【数据库】DB2 自增长列导入、导出测试jquery 基础视频教程
  • 视频教程分类
    • php视频教程
    • html视频教程
    • css视频教程
    • JS视频教程
    • jQuery视频教程
    • mysql视频教程
    • Linux视频教程
    • Python视频教程
    alter column