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);
1条答案
按热度按时间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