举个例子

create table indexing_table
(
  id SERIAL PRIMARY KEY,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
);

下列表格之间有区别吗?

表1:

create table referencing_table
(
  indexing_table_id INTEGER references indexing_table
);

表2:

create table referencing_table
(
  indexing_table_id INTEGER references indexing_table NOT NULL
);

或者,在没有NOT NULL约束的表1中,我们是否可以插入包含NULL个值的记录?

推荐答案

对于表1,这个INSERT语句将成功.如果你运行100次,它将成功100次.

insert into referencing_table values (null);

同样的INSERT语句将在表2中失败.

ERROR:  null value in column "indexing_table_id" violates not-null constraint
DETAIL:  Failing row contains (null).

Postgresql相关问答推荐

更新带有视图的表并在关系员工的规则中检测到无限的回归"

Trunc函数不删除小数

使用多个分隔符拆分SQL

正在应用序列化迁移,但数据库没有更改

时间戳的postgreSQL-to_char如果为零,则不显示微秒

如何在PostgreSQL中 Select 最近30天内的开始日期?

无法使用PGx连接到Postgres数据库AWS RDS

执行准备好的语句不返回数据

数据库所有者无法授予 Select 权限

Postgresql如何从jsonB列的数组中的多个json中 Select 一个值

为什么 postgresql 可以在这个查询中高效地使用索引?

将 postgres 从属提升为主 node

Spring:如何在 PostgreSQL 中使用 KeyHolder

postgreSQL 中对 utf-8 的 LC_COLLATE 和 LC_CTYPE 支持

包含受先前 DELETE 影响的行数的变量?

在远程机器上Restore dump

Postgres 默认按 id 排序 - worldship

Redis 可以写出到像 PostgreSQL 这样的数据库吗?

Oracle 相当于 Postgres 的 DISTINCT ON?

PostgreSQL 多种认证方式