DB2使用EXPRESSION中的现有数据将一个新的COLUMN添加到具有DEFAULT值的表中

dl5txlt9  于 2023-06-22  发布在  DB2
关注(0)|答案(1)|浏览(185)
ALTER TABLE my_table ADD COLUMN new_column_name data_type DEFAULT expression;

在DB2中,是否可以使用现有列数据作为新列的默认值?

ALTER TABLE employees ADD COLUMN work_hours INT DEFAULT (man_days);

还是用这样的表达式来表示默认值?

ALTER TABLE employees ADD COLUMN work_hours INT DEFAULT ( CASE WHEN salary < 50000 THEN (man_days + 10) * 24
   WHEN salary >= 50000 THEN (man_days) * 24 END);
ulydmbyx

ulydmbyx1#

对于当前发布的IBMDb 2版本,无论是什么平台,都不能使用ALTER TABLE语句指定基于表达式的默认值。
在Db2平台(LUW、Z/OS、i)之间,default-clause的语法存在微小的差异,但都将选项限制为基于空或特殊寄存器或常量。
您可以通过DDL和后续SQL语句的组合来实现所需的功能。
Db2-LUW alter table
DB2-for-Z/OS alter table
Db2-for-i alter table

相关问题