【发布时间】:2020-05-12 23:24:19
【问题描述】:
我有一个任务和设备的数据模型。
有时Task 需要完成一些Equipment,有时则不需要。
任务表
create table task (
id serial primary key
, task_name varchar(80)
)
设备表
create table equipment (
id serial primary key
, equipment_name varchar(80)
)
我想做的是向Task table 添加一个空引用。
create table task (
id serial primary key
, task_name varchar(80)
, equipment_id serial null references equipment(id)
)
我收到一个错误
ERROR: conflicting NULL/NOT NULL declarations for column "equipment_id" of table "task"
SQL state: 42601
如何在向表中添加外键的同时保持数据完整性,使其按预期工作?我以为你可以有空引用。
【问题讨论】:
-
您的代码seems to work。我不确定您的实际问题是什么。
-
更新了对 NULL 的引用
-
serial暗示NOT NULL但这是task.equipment_id的错误选择(见戈登的回答)
标签: sql postgresql foreign-keys referential-integrity