如何在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
相关产品推荐
相关产品推荐

