请求默认值的 NOT NULL 约束
NOT NULL constraint asking for a default value
使用 NOT NULL 约束向我的数据库添加一个新列,但 Redshift 提醒我应该定义一个默认值。我以为 NOT NULL 的意义在于强制定义?
ALTER TABLE users add column
name varchar(255) NOT NULL
;
结果:
[Amazon](500310) Invalid operation: ALTER TABLE ADD COLUMN defined as NOT NULL must have a non-null default expression;
有没有办法强制列不能为空?
NOT NULL
是确保列包含值的正确方法。
但是,因为您的 table 已经存在,其中已经存在的行将没有新的 name
列的值,因此它们会违反 NOT NULL
约束。
通过指定默认值,您可以确保任何现有行都分配有该值,从而符合您的 NOT NULL
约束。
如果列是 NOT NULL
,它必须有一个值,对吗?
为什么不加:DEFAULT default_expr
使用 NOT NULL 约束向我的数据库添加一个新列,但 Redshift 提醒我应该定义一个默认值。我以为 NOT NULL 的意义在于强制定义?
ALTER TABLE users add column
name varchar(255) NOT NULL
;
结果:
[Amazon](500310) Invalid operation: ALTER TABLE ADD COLUMN defined as NOT NULL must have a non-null default expression;
有没有办法强制列不能为空?
NOT NULL
是确保列包含值的正确方法。
但是,因为您的 table 已经存在,其中已经存在的行将没有新的 name
列的值,因此它们会违反 NOT NULL
约束。
通过指定默认值,您可以确保任何现有行都分配有该值,从而符合您的 NOT NULL
约束。
如果列是 NOT NULL
,它必须有一个值,对吗?
为什么不加:DEFAULT default_expr