db2中创建联合主键,发现一个字段可以为null,但是db2不让创建

这个是oracle中的脚本,其BE_ID字段没定义为:notnull,但是没影响下面联合主键的创建。但是……createtableMM_PUB_RULEATOM_LEVE... 这个是oracle中的脚本,其 BE_ID 字段没定义为:not null,但是没影响下面联合主键的创建。但是……

create table MM_PUB_RULEATOM_LEVELRELATE
(
LEVELID VARCHAR2(50) not null,
ATOMID VARCHAR2(64) not null,
STATUS VARCHAR2(10),
SOURCETYPE VARCHAR2(20),
FK VARCHAR2(32),
HANDLER VARCHAR2(32),
HIDEONCLICK VARCHAR2(10),
SEQNUM VARCHAR2(20),
BE_ID NUMBER(10)
)
;
alter table MM_PUB_RULEATOM_LEVELRELATE
add constraint PK_PUB_RULEATOM_LEVELRELATE primary key (LEVELID, ATOMID,BE_ID);

问题来了——现在将oracle脚本该为db2脚本执行时(项目中不再使用oracle,而是使用db2),对应的db2脚本如下:
create table MM_PUB_RULEATOM_LEVELRELATE
(
LEVELID VARCHAR(50) not null,
ATOMID VARCHAR(64) not null,
STATUS VARCHAR(10),
SOURCETYPE VARCHAR(20),
FK VARCHAR(32),
HANDLER VARCHAR(32),
HIDEONCLICK VARCHAR(10),
SEQNUM VARCHAR(20),
BE_ID DECIMAL(10)
)
;
alter table MM_PUB_RULEATOM_LEVELRELATE
add constraint PK_PUB_RULEATOM_LEVELRELATE primary key (LEVELID, ATOMID,BE_ID);
执行发现:
Error 2013/11/1 10:53:15 0:00:00.000 DB2 Database Error: ERROR [42831] [IBM][DB2/LINUXX8664] SQL0542N The column named "BE_ID" cannot be a column of a primary key or unique key constraint because it can contain null values. SQLSTATE=42831
即,BE_ID不能为空在db2中创建联合主键时,求oracle或者db2专家们给点指导,如何处理?因为业务中 BE_ID 肯定可能为空
展开
 我来答
爱栀竹的人
2013-11-01 · TA获得超过1352个赞
知道大有可为答主
回答量:1743
采纳率:0%
帮助的人:994万
展开全部
主键是不允许出现null值,
追问
oracle可以,db2不可以
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式