在 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;
如果列不为 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;