postgresql - 在 Postgres 中添加 NOT VALID 外键

标签 postgresql foreign-keys ddl

示例架构:http://sqlfiddle.com/#!1/3d410

我已经有了一个表,我想向该表添加一个新的、无效的外键。添加 NOT VALID 外键的正确语法是什么?

CREATE TABLE junks (
  id serial PRIMARY KEY,
  name text
);

CREATE TABLE trunks (
  id serial PRIMARY KEY,
  name text
  -- no fk
);

-- and the below does not work!

--ALTER TABLE trunks ADD junk serial REFERENCES junks(id) NOT VALID;

最佳答案

您首先添加列:

alter table trunks add column junk serial;

然后将约束添加到表中:

alter table trunks add constraint the_constraint_name
    FOREIGN KEY (junk)
    REFERENCES junks (id)
    not valid;

关于postgresql - 在 Postgres 中添加 NOT VALID 外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972559/

相关文章:

postgresql - 如何在 Postgres、Activerecord、Rails 5 中查询空的 jsonb 数组

python - postgresql使用python插入时间戳错误

sql-server - SQL Server 格式文件 - 我可以用来生成创建表语句吗?

sqlite - 在同一个表 SQLite 上创建外键

php - 使用条件语句在多个表上使用左连接

database - 如何从另一个表创建表并将 NULL 值传递给列?

sql - 表定义中的引用完整性检查

postgresql - 当 TIMESTAMP 列的值为 NULL 时,如何使用 COALESCE 返回 'N/A'?

java - Vert.x 使用 BLOB 和 hibernate 对来自数据库的数据进行分块回答

mysql - 需要外键约束的详细信息失败