Dyl*_*rce 4 postgresql amazon-redshift
使用 NOT NULL 约束向我的数据库添加一个新列,但 Redshift 提醒我应该定义一个默认值。我认为 NOT NULL 的重点是强制定义?
ALTER TABLE users add column
name varchar(255) NOT NULL
;
Run Code Online (Sandbox Code Playgroud)
结果是:
[Amazon](500310) Invalid operation: ALTER TABLE ADD COLUMN defined as NOT NULL must have a non-null default expression;
Run Code Online (Sandbox Code Playgroud)
有没有办法强制列不能为空?
NOT NULL是确保列包含值的正确方法。但是,因为您的表已经存在,其中已经存在的行将没有新name列的值,因此它们会违反NOT NULL约束。
通过指定默认值,您可以确保为任何现有行分配该值,从而符合您的NOT NULL约束。
如果列是NOT NULL,它必须有一个值,对吗?
为什么不添加: DEFAULT default_expr
| 归档时间: |
|
| 查看次数: |
9870 次 |
| 最近记录: |