为什么这个'修改表'语句失败了?

时间:2010-01-22 15:44:08

标签: sql oracle

我正在尝试向Oracle 9中的列添加“not null”约束。

ALTER TABLE user_roles modify group_id varchar2(36 char) set not null;

但是,操作失败并出现奇怪的错误:

Error report:
SQL Error: ORA-12987: cannot combine drop column with other operations
12987. 00000 -  "cannot combine drop column with other operations"
*Cause:    An attempt was made to combine drop column with other
           ALTER TABLE operations.
*Action:   Ensure that drop column is the sole operation specified in
           ALTER TABLE.

为什么会失败的任何想法?

3 个答案:

答案 0 :(得分:2)

删除set

ALTER TABLE user_roles modify group_id varchar2(36 char) not null

是的,Oracle的错误可能会产生误导。

答案 1 :(得分:0)

  

我正在尝试添加'not null'   约束到Oracle 9中的列。

如果你真的尝试jsut使列NOT NULL(即你不想同时更改数据类型),你只需要

ALTER TABLE user_roles modify not null; 

答案 2 :(得分:0)

事实证明上述语句的语法是错误的。它应该是:

ALTER TABLE user_roles modify group_id varchar2(36 char) not null;

但是,错误的“设置”的存在会导致一个非常奇怪的错误!