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列也自动有了值。

你可能感兴趣的:(DB2,db2,integer,table,insert,null,cache)