ALTER TABLE [table_name] ADD COLUMN alloc_strat varchar(25) NOT NULL DEFAULT(CASE WHEN (shelf_life_unit = 'Months') THEN 'Min Remaining Shelf Life' ELSE 'FIFO') ;
这不起作用,有没有办法在一条SQL语句中做到这一点
hgtggwj01#
在SQLite中,添加的列不允许将表达式作为其缺省值。下面说明了ALTER TABLE ADD COLUMN语句的语法:ALTER TABLE TABLE_NAME ADD COLUMN_DEFINITION;代码语言:SQL(结构化查询语言)(SQL)对新列有一些限制:新列不能有唯一或主键约束。如果新列具有NOT NULL约束,则必须为该列指定非NULL值的默认值。新列不能具有默认的CURRENT_TIMESTAMP、CURRENT_DATE和CURRENT_TIME或表达式。如果新列是外键,并且启用了外键约束检查,则新列必须接受缺省值NULL。Source
1条答案
按热度按时间hgtggwj01#
在SQLite中,添加的列不允许将表达式作为其缺省值。
下面说明了ALTER TABLE ADD COLUMN语句的语法:
ALTER TABLE TABLE_NAME ADD COLUMN_DEFINITION;代码语言:SQL(结构化查询语言)(SQL)对新列有一些限制:
新列不能有唯一或主键约束。如果新列具有NOT NULL约束,则必须为该列指定非NULL值的默认值。新列不能具有默认的CURRENT_TIMESTAMP、CURRENT_DATE和CURRENT_TIME或表达式。如果新列是外键,并且启用了外键约束检查,则新列必须接受缺省值NULL。
Source