免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2958 | 回复: 1
打印 上一主题 下一主题

DB2建表遇到的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-31 15:36 |只看该作者 |倒序浏览
环境:RedHat Enterprise Linux AS4 + DB2 V9.5
建表脚本如下:
DROP TABLE s_ds_proj;
CREATE TABLE s_ds_proj
(
  ds_project_name     varchar(1024)     NOT NULL  DEFAULT ' '     primary key    ,
  ds_server_id        integer           NOT NULL  DEFAULT 0          ,
  app_id              integer           NOT NULL  DEFAULT 0           ,
  ds_project_stat     integer           NOT NULL  DEFAULT 0           ,
  stat_msg1            varchar(128)      NOT NULL  DEFAULT ' '         ,
  stat_msg2           varchar(2048)      NOT NULL  DEFAULT ' '     ,
  ext_column_1        integer           NOT NULL  DEFAULT 0           ,
  ext_column_2        integer           NOT NULL  DEFAULT 0           ,
  ext_column_3        varchar(256)      NOT NULL  DEFAULT ' '      ,
  ext_column_4        varchar(256)      NOT NULL  DEFAULT ' '      
 
);

报错如下:
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0613N  The primary key, unique key, or table partitioning key identified by
"DS_PROJECT_NAME..." is too long or has too many columns.  SQLSTATE=54008
大意就是:主健或UNIQUE约束太长或者包含了太多的列

但是把其中stat_msg1的字段长度调整为2048就可以创建成功。或者增加几个字段也可以创建成功,
这是什么原因,难道主键长度和非主键的长度必须达到一定比例才行?

未命名.jpg (24.87 KB, 下载次数: 24)

未命名.jpg

论坛徽章:
0
2 [报告]
发表于 2009-12-31 23:14 |只看该作者

回复 #1 legone2008 的帖子

索引键长度限制基于索引使用的表空间的页大小:

最大键长度      页大小
--------------  ---------
1K              4K
2K              8K
4K              16K
8K              32K

你的页大小应该是4k,调整第一列主键长度<=1022就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP