在创建新表时,如何将列的默认值设置为同一个表中的另一列值?
所以例如:
CREATE TABLE app_version
(
id serial NOT NULL,
version_name character varying(50),
version_number numeric
)
如果没有提供姓名,我希望version_name
为version_number
。
我可以version_name character varying(50) default version_number
吗?
这可能吗?如果是这样,怎么样?感谢
我似乎无法在论坛上发现任何相关内容,它始终处于INSERT或UPDATE状态。
答案 0 :(得分:2)
documentation非常明确,默认值不能引用其他列:
DEFAULT default_expr
DEFAULT
子句为其列分配默认数据值 列定义它出现在。该值是任何无变量的 表达式(子查询和对其他列的交叉引用) 不允许使用当前表格。默认的数据类型 表达式必须与列的数据类型匹配。默认表达式将用于任何插入操作 不指定列的值。如果a没有默认值 列,然后默认为null。
因此,您无法使用DEFAULT
子句执行所需操作。