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

如何在PostgreSQL schema中定义复合主键?

在PostgreSQL中创建复合主键的正确方式

针对你的genre表,不能给genre和ISBN分别标记主键(那样会生成两个独立的主键约束,不符合复合主键的需求),正确的实现方式有两种:

方式一:直接指定复合主键

在CREATE TABLE语句的末尾,通过PRIMARY KEY子句将两个字段组合成复合主键:

CREATE TABLE genre (
    genre VARCHAR(255),
    ISBN INTEGER,
    PRIMARY KEY (genre, ISBN)
);

方式二:带命名约束的复合主键

如果需要给主键约束指定一个自定义名称(便于后续维护),可以使用CONSTRAINT关键字:

CREATE TABLE genre (
    genre VARCHAR(255),
    ISBN INTEGER,
    CONSTRAINT pk_genre_isbn PRIMARY KEY (genre, ISBN)
);

两种方式都能实现genre和ISBN作为复合主键的需求,区别仅在于是否显式命名主键约束。

内容的提问来源于stack exchange,提问作者Wienerbroed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:25:19