Oracle表能否以两列定义主键?含Oracle 11g场景问询
关于Oracle复合主键的问题解答
当然没问题!Oracle数据库完全支持使用多个列组合定义主键(也就是常说的复合主键),这是很常见的数据库设计方式,用来满足“需要多个字段共同唯一标识一条记录”的业务场景。
针对你第二个具体的问题:在Oracle 11g中,完全可以创建以ID和TYPE两列组合作为主键的表。下面是一个具体的建表示例:
CREATE TABLE example_table ( ID NUMBER, TYPE VARCHAR2(30), product_name VARCHAR2(100), create_date DATE DEFAULT SYSDATE, -- 定义复合主键约束 CONSTRAINT pk_example_id_type PRIMARY KEY (ID, TYPE) );
这里需要注意:复合主键的唯一性是基于所有列的组合值——单独的ID可以重复,单独的TYPE也可以重复,但ID+TYPE的组合必须是唯一的。另外,Oracle会自动将主键列设为NOT NULL,不过如果需要更清晰的表结构,也可以显式给列加上NOT NULL约束。
内容的提问来源于stack exchange,提问作者Ahmed S. Elsenbawy
相关产品推荐
相关产品推荐

