DB2 SQL0613N 标识的主键、唯一键或表分区键太长或者包含太多的列和时间段。

在使用DB2数据库创建表时遇到SQL0613N错误,原因是默认表空间不支持超过1024字符长度的唯一索引。解决方法是创建一个页面大小为8K的自定义表空间,并在建表时指派该表空间。
摘要由CSDN通过智能技术生成

项目中用到的DB2数据库,创建表时 出现了这个蛋疼的 SQL0613N错误

SQL 脚本:

create table convertPrintWarningMessage(
 id BIGINT not null generated by default as identity,
 version decimal(19,0),
 server VARCHAR(1024) not null unique,
 type decimal(19,0) not null,
 warningLevel decimal(19,0) not null,
 createTime timestamp(6) not null,
 primary key(id)
);

研究半天发现是DB2默认的表空间不支持长度超过1024的唯一索引,只能自己创建页面大小8K的表空间

--创建8K缓冲池
CREATE BUFFERPOOL 缓冲池名称 IMMEDIATE
SIZE 250                                    
AUTOMATIC                                
PAGESIZE 8K;

--创建8K表空间
CREATE REGULAR  TABLESPACE 表空间
PAGESIZE 8 K
MANAGED BY AUTOMATIC STORAGE 
EXTENTSIZE 8
OVERHEAD 10.5
PREFETCHSIZE 8
TRANSFERRATE 0.14
BUFFERPOOL 缓冲池名称
DROPPED TABLE RECOVERY ON;    

并在创建表时指定到该表空间

create table convertPrintWarningMessage(
 id BIGINT not null generated by default as identity,
 version decimal(19,0),
 server VARCHAR(1024) not null unique,
 type decimal(19,0) not null,
 warningLevel decimal(19,0) not null,
 createTime timestamp(6) not null,
 primary key(id)
)IN 表空间名称;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值