引用问题,主键和外键

问题描述 投票:0回答:1

我在设置第一个大学数据库时遇到了麻烦。我将不得不将公司和员工的钥匙引用到工作中。在一种关系中,员工只能在一家公司工作。

我不断得到一些错误,一个在主键之后,而且引用也没有真正起作用。

仅供参考:我正在研究postgresql。

我希望有人可以帮助我。谢谢你的帮助

CREATE SCHEMA p10_1_employee;
Set search_path to p10_1_employee;

CREATE TABLE employee(
    firstname varchar(20) NOT NULL,
    lastname varchar(20) NOT NULL,
    CONSTRAINT cPKfirstnamelastname PRIMARY KEY(firstname, lastname)
);

CREATE TABLE company(
    companyname varchar(20) NOT NULL,
    CONSTRAINT cPKcompanyname PRIMARY KEY (companyname)
);

CREATE TABLE works (
    personenname varchar(40),
    companyname varchar(20)
    CONSTRAINT cPKpersonennamecompanyname PRIMARY KEY (personenname, companyname)
    CONSTRAINT cFKfirstnamelastname FOREIGN KEY (personenname) REFERENCES employee(firstname, lastname),
    CONSTRAINT cFKcompanyname FOREIGN KEY (companyname) REFERENCES company(companyname)
);
postgresql
1个回答
2
投票

你在works表中有几个错误(缺少逗号和错误的引用列数)。这是一个工作脚本

CREATE TABLE works (
    personenname_firstname varchar(20),
    personenname_lastname varchar(40),
    companyname varchar(20),
    CONSTRAINT cPKpersonennamecompanyname PRIMARY KEY (personenname_firstname, personenname_lastname, companyname),
    CONSTRAINT cFKfirstnamelastname FOREIGN KEY (personenname_firstname, personenname_lastname) REFERENCES employee,
    CONSTRAINT cFKcompanyname FOREIGN KEY (companyname) REFERENCES company
);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.