sql - 是否可以在 PostgreSQL 中创建可为空的外键约束?
问题描述
我在表“XY”上有一个可为空的 int8 列“z_id”。“z_id”是“Z”表的主键。如果在持久化期间提供了“z_id”,我想要一个将“Z”实体映射到“XY”表的约束。
解决方案
如果我对您的理解正确,您可以尝试:
t=# create table z(i int primary key);
CREATE TABLE
t=# insert into z values (1);
INSERT 0 1
t=# create table xy(i int);
CREATE TABLE
t=# insert into xy values(1),(null);
INSERT 0 2
t=# alter table xy add constraint fk foreign key (i) references z(i);
ALTER TABLE
t=# select * from xy;
i
---
1
(2 rows)
你可能有同样的怀疑?
推荐阅读
- node.js - TypeORM:如何 .find() 精确匹配?
- python-3.x - 是否可以使用 GraphAPI(不是页面或组,您自己的用户时间线)在 Facebook 上发布您自己的时间线
- terminal - 将 PyCharm 中的基本解释器更改为终端的默认路径
- javascript - How can I ensure that a defer script does not block other scripts (or async executes in order)?
- java - 当我通过另一个面板时如何更改面板的颜色?
- python - 没有模块的计划检查python
- sharepoint - 如何使 Microsoft Teams 主站点应用程序跨不同租户工作
- git - 如何忽略 gitignore 中的文件夹及其子文件夹?
- c# - 如何解决:警告 XBD100:不再支持 ItemGroup `XamarinBuildDownloadRestoreAssemblyAar`。Xamarin 安卓项目
- excel - 在没有边距的excel中打印完整的电子表格