【发布时间】:2013-10-28 14:12:26
【问题描述】:
我有两张表,它们通过几列的关系连接起来。我想创建外键来清理连接的实体,而不是删除它们 - 我需要使用“SET NULL”选项。
我的桌子:
CREATE TABLE resource
(
id integer NOT NULL,
project_id integer NOT NULL,
lang character(2) NOT NULL,
recource_id integer,
reserved_by integer NOT NULL,
CONSTRAINT resource_v0_pkey PRIMARY KEY (id, project_id, lang);
CREATE TABLE resource_list
(
id integer NOT NULL
project_id integer NOT NULL,
lang character(2) NOT NULL,
name character varying(128),
CONSTRAINT resource_list_v0_pkey PRIMARY KEY (id, project_id, lang);
);
当资源被删除时,如何添加以下 FK 以将 recurce_id 设置为 BULL。它应该看起来像这样:
ALTER TABLE resource
ADD CONSTRAINT $2
FOREIGN KEY (resource_id, project_id, lang)
REFERENCES resource_list(id, project_id, lang)
ON DELETE SET NULL;
重要的是我只想将 NULL 设置为 resource.recource_id 而不是所有连接的字段。有可能吗?
【问题讨论】:
标签: postgresql foreign-keys relational-database