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 肯定可能为空 展开
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 肯定可能为空 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询