我对DB2中的简单drop column查询有一个奇怪的问题。 我做了一些研究,语法似乎显然是正确的,但我仍然有错误。这是查询:
alter table ed2.batch_job_instance drop column prova;
表存在,列也是(这是一个简单的可以为空的varchar),但我仍然有这个错误:
非法使用关键词。 TOKEN QUERY CARIAL MATERIALIZED PRIMARY FORARIGN CONSTRAINT RESTRICT UNIQUE WAS预期SQL代码:-199,SQL状态:42601
我做错了什么? 提前谢谢。
答案 0 :(得分:1)
请检查PROVE列是否未包含在某些约束中。可能还有UNIQUE?在这种情况下,您必须先删除(删除)约束。
UPDATE:根据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