添加外键

最近更新时间: 2025-02-18 16:02:00

  • 复制
    复制成功
postgres=# create table t_p(f1 int not null,f2 int ,primary key(f1));
postgres=# create table t_f(f1 int not null,f2 int );
postgres=# ALTER TABLE t_f ADD CONSTRAINT t_f_f1_fkey FOREIGN KEY (f1) REFERENCES t_p (f1);
ALTER TABLE
postgres=# \d+ t_f
                                    Table "public.t_f"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 f1     | integer |           | not null |         | plain   |              | 
 f2     | integer |           |          |         | plain   |              | 
Foreign-key constraints:
    "t_f_f1_fkey" FOREIGN KEY (f1) REFERENCES t_p(f1)
Distribute By: SHARD(f1)
Location Nodes: ALL DATANODES

外键使用限制:

  • 外键只是同一个节点内约束有效果,所以外键字段和对应主键字段必需都是表的分布键,否则由于数据分布于不同的节点内会导致更新失败。
  • 分区表和冷热分区表也不支持外键,数据分区后位于不同的物理文件中,无法约束。