2

我对 DB2 中的简单删除列查询有一个奇怪的问题。我做了一些研究,语法似乎显然是正确的,但我仍然有错误。这是查询:

alter table ed2.batch_job_instance drop column prova;

该表存在,该列也存在(这是一个简单的可为空的 varchar),但我仍然有这个错误:

非法使用关键字列。TOKEN QUERY MATERIALIZED PRIMARY FOREIGN CONSTRAINT RESTRICT UNIQUE WAS EXPECTED SQL Code: -199, SQL State: 42601

我究竟做错了什么?提前致谢。

4

1 回答 1

1

请检查列 PROVE 是否未包含在某些约束中。也许是独一无二的?在这种情况下,您必须首先删除(删除)约束。

更新:根据 V10 的文档:http: //publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp ?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc%2Ftpc%2Fdb2z_sql_altertable.htm没有像 DROP COLUMN 这样的东西。

还有其他来源: http: //publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp ?topic=%2Fcom.ibm.db2z10.doc.admin%2Fsrc%2Ftpc%2Fdb2z_altertables.htm 甚至没有提到这种可能性(但指出了添加列)。

编辑: 你将不得不使用这样的东西:

EXPORT TO data.ixf OF IXF SELECT COL1, COL2 FROM TABLE1;
DROP TABLE TABLE1;
CREATE TABLE TABLE1 (COL1 ..., COL2 ...);
IMPORT FROM data.ixf OF IXF INSERT INTO TABLE1;

参考:http ://bytes.com/topic/db2/answers/810167-can-i-drop-cloumn-table-db2-z-os

于 2014-03-31T13:47:52.027 回答