【发布时间】:2023-01-25 21:05:04
【问题描述】:
我是 SQL 的新手,正在尝试了解外键语法。我知道这是在多个问题中被问到的,但我发现的每个问题似乎都没有告诉我我在这里做错了什么。 这是我的 SQL 代码:
CREATE TABLE Customer
(
id int primary key,
name varchar(30),
age int,
gender bool
);
CREATE TABLE Minor
(
FOREIGN KEY (parent_id) REFERENCES Customer(id)
);
CREATE TABLE Adult
(
FOREIGN KEY (parent_id) REFERENCES Customer(id)
);
CREATE TABLE Shop
(
id int primary key
);
CREATE TABLE Drink
(
name varchar(30) primary key
);
CREATE TABLE AlcoholicDrink
(
FOREIGN KEY (name) REFERENCES Drink(name)
);
CREATE TABLE NonAlcoholicDrink
(
FOREIGN KEY (name) REFERENCES Drink(name)
);
这是我得到的错误:
ERROR: column "parent_id" referenced in foreign key constraint does not exist
SQL state: 42703
【问题讨论】:
-
您的表没有列 - 外键只能在表的列上声明。
-
您需要先添加列 parent_id 然后提供对基表的引用
-
感谢您对此的澄清。
标签: sql postgresql create-table