DB2可以使用generated always as identity 将某一个字段指定为自增长的字段。
比如:
DB2中VARCHAR类型的最大长度是65535。 但是还有一个原则,一个表中所有列所占字节数的总和不能超过表空间的页面尺寸
比如:
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类型长度是多少?
DB2中VARCHAR类型的最大长度是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列也自动有了值。