我有一个具有复合主键的表:
CREATE TABLE tb (
it_service VARCHAR2(200),
hostname VARCHAR2(255),
sw_name VARCHAR2(200 CHAR),
product_home VARCHAR2(500),
product_home_ods VARCHAR2(500),
instance_name VARCHAR2(255),
eg_status VARCHAR2(10),
);
ALTER TABLE tb ADD (
CONSTRAINT pk_tb PRIMARY KEY ( hostname,
instance_name,
product_home,
product_home_ods,
it_service,
sw_name )
);
问题是当我插入到这个表中时,product_home
列中的数据对于product_home_ods
包含数据的行是空的,同样的情况也适用于product_home_ods
,表中包含数据的行对于product_home
是空的。
示例:
product_home product_home_ods
java null
python null
null windows
null windows_server
是否可以根据这些列的条件创建主键?我知道主键不应该包含null
值,但不确定解决这个问题的最佳方法。
1条答案
按热度按时间nfg76nw01#
如果更改为这种模型,product_home将永远不会为NULL,ods_flag将指示是否应将其解释为product_home或product_home_ods,您可以在视图中执行此操作以获取与原始表相同的数据。
(As只要原始表的product_home和product_home_ods不是外键)