You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:19:45