db2 id 自增

   DB2可以使用generated always as identity 将某一个字段指定为自增长的字段。
比如:

  create tablestudent

  (

       id  int

  GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1 )

  primary key not null,

  name varchar(200),

  code decimal(6,0)

  );

  其中GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1 )

  从1开始自增,每次加1.



db2中varchar类型长度是多少?


DB2VARCHAR类型的最大长度是65535。 但是还有一个原则,一个表中所有列所占字节数的总和不能超过表空间的页面尺寸

表空间的页面大小一旦创建是不可以改变的,你只能重新建一个表空间,如果你对DB2不熟悉的话建议你使用控制中心的向导来做,你就可以知道创建表空间所需要的参数了。
DB2使用不同页面的表空间来存储不同大小的表,这样有助于提高性能



----


对于自增的解决方案

你可运行控制中心,然后修改表,有很多限制的.
对于一个已经存在的字段,以前有内容了,如果你这样改,其内容必改,这可能出问题,所以DB2不支持.
建议建立一个新的自增字段. 
实验结果:
先设置整型字段然后再ALTER,结果表中无记录时成功,而有记录时失败。
那么就这么做:
create table b like a;
insert into b select * from a;
drop table a;
create table a like b;
alter table a add column id int;
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE A ( A INTEGER , ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE ), ID1 SMALLINT  NOT NULL  ) IN IBMDB2SAMPLEREL ', -1, ? );
INSERT INTO A(COL1,.....,COLN) SELECT * FROM B; 不包括A的新增自增列,就将数据导回并且ID列也自动有了值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值