【发布时间】:2015-04-07 10:51:15
【问题描述】:
我试图在同一个 alter 命令中对 DB2 中的一列进行 2 次更改,但它似乎不喜欢我的语法。有没有办法做到这一点?如果有,怎么做?
create table tbl(col varchar(10))
以下工作,使用 2 个 alter 语句:
alter table tbl
alter column col set data type varchar(128)
alter table tbl
alter column col set default current user
以下尝试失败:
alter table tbl
alter column col set data type varchar(128) set default current user
在下面发现了一个意外的标记“set data type varchar(128)” “TBL 更改列 col”。预期的标记可能包括:“”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.28
alter table tbl
alter column col set data type varchar(128) with default current user
在下面发现了一个意外的标记“数据类型 varchar(128)” “更改列 col 集”。预期的标记可能包括:“”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.67.28
alter table tbl
alter column col set data type varchar(128)
alter column col set default current user
“COL”是重复名称。SQLCODE=-612, SQLSTATE=42711, 驱动程序=3.67.28
【问题讨论】:
-
您不能在同一语句中两次更改同一列——这就是 SQLCODE -612 告诉您的。您的其他尝试在语法上不正确。
-
根据www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/…,列名只能在单个 ALTER TABLE 语句中的一个 ADD、DROP COLUMN 或 ALTER COLUMN 子句中引用。
-
@GeekyDaddy 似乎回答了这个问题;为什么不将其列为答案?
-
我只是再次强调@mustaccio 的响应并提供链接
标签: alter-table db2-luw