小编mar*_*rom的帖子

表 A 或表 B 的外键

考虑这样一种情况,我定义了一个对象、一组对象,然后是一个将它们链接在一起的表:

CREATE TABLE obj (
  id INTEGER PRIMARY KEY,
  name text
) ;

CREATE TABLE group (
  id INTEGER PRIMARY KEY ;
  grpname TEXT
) ;

CREATE TABLE relation (
  objid INTEGER,
  grpid INTEGER,
  PRIMARY KEY (objid, grpid)
) ;
Run Code Online (Sandbox Code Playgroud)

我正在寻找适用的级联删除,所以我添加了外键

ALTER TABLE relation
ADD FOREIGN KEY (objid)
REFERENCES obj(id)
ON DELETE CASCADE ;

ALTER TABLE relation
ADD FOREIGN KEY (grpid)
REFERENCES group(id)
ON DELETE CASCADE ;
Run Code Online (Sandbox Code Playgroud)

到目前为止一切正常。现在假设我想添加对组组的支持。我正在考虑像这样更改关系表:

CREATE TABLE relation_ver1 (
  parent INTEGER,
  child INTEGER,
  PRIMARY KEY (parent, child) …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

5
推荐指数
1
解决办法
1304
查看次数

标签 统计

postgresql ×1

sql ×1