Welcome 微信登录

首页 / 数据库 / MySQL / DB2 自增长列导入、导出测试

DB2 自增长列测试
1当想将表中一列修改为自动增长时,可用下面命令:
Alter table  <table name>  alter column <column name>  set not null
Alter table <table name> alter column <column name> set generated always as identity (start with 1,increment by 1)
上面命令是在改一表中列的属性时,在网上找到的很有用。2当修改表中一列自动增长的开始值时,可用下面的命令:
ALTER TABLE <talbe_name> ALTER COLUMN <column name> 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时的MINVALUE3、命令行以指定值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字段上。
  • 1
  • 2
  • 下一页
RedHat 6.3 源码安装 MySQL-5.5.29一次将Oracle 11gR2 RAC网卡调整的思路记录相关资讯      DB2  DB2导入导出 
  • RHEL5 下安装 DB2 V9.7 数据库  (今 09:39)
  • DB2常用脚本整理  (01月19日)
  • Linux下DB2SQL1024N A database   (01月12日)
  • DB2中REVERSE函数的实现  (01月19日)
  • 使用 IBM Data Studio 创建和管理   (01月12日)
  • TOAD连接DB2报错SQL1460N解决  (01月12日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图