有没有办法在postgres中设置非NULL列的默认值?

问题描述 投票:0回答:1

在 PostgreSQL 中,当列被标记为 NOT NULL 并且在插入期间没有为其提供值时,会抛出错误。但是,在 MySQL 中,如果未提供值,则根据列的类型设置默认值,例如

''
表示字符串值,
0
表示整数,
0.00
表示浮点数(scale: 2)等。值得注意的是,即使在 MySQL 中,无论是否明确提及默认值,都会发生这种行为。

示例:

ALTER TABLE errors ADD COLUMN user_id INT NOT NULL

在 MySQL 中,如果没有提供值,它将插入 0,而 PostgreSQL 会抛出错误。

PostgreSQL 中是否有一种方法或数据库设置可以实现类似的行为,即自动为标记为 NOT NULL 的列设置默认值?

我在nestjs中使用TypeORM,我不想像这样显式地为每列提供默认值

@Column('int', { default: 0 })
user_id: number;
mysql postgresql typeorm default-value notnull
1个回答
0
投票

如果列不为 NULL,则必须有默认值。

为什么不添加:DEFAULT

negative number
zero

PL/pgSQL 查询:

ALTER TABLE errors ADD COLUMN user_id INT NOT NULL DEFAULT -1;

ALTER TABLE errors ADD COLUMN user_id INT NOT NULL DEFAULT 0;
© www.soinside.com 2019 - 2024. All rights reserved.