代码生成两个主键?

125*_*748 -1 sql

我在postgresql 创建表页面上看到了这个:

CREATE TABLE films (
    code        char(5),
    title       varchar(40),
    did         integer,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute,
    CONSTRAINT code_title PRIMARY KEY(code,title)
);
Run Code Online (Sandbox Code Playgroud)

我得到了约束,CHECK (price > 0)但我不知道这意味着什么是主键传递代码和标题像参数.

这个设置是否都是主键?

是否可以有两个主键?

pax*_*blo 8

这不是两个主键,它是一个复合主键.

这意味着,主键由两列的codetitle(因此code_title约束名).

因此,虽然您可以拥有包含重复代码和重复标题的行,但是没有两行可以具有相同的code/title组合:

code  title
----  -----
0000  aaaaa    Okay.
0000  bbbbb    Okay.
1111  bbbbb    Okay.
0000  aaaaa    ** No! Conflicts with first row. **
Run Code Online (Sandbox Code Playgroud)