1

我有一个甲骨文查询 -

occupation varchar2(50) CHECK(occupation IN ('student','govt_service','private','business')));

现在我需要删除检查约束,所以我使用以下查询 -

ALTER TABLE registration drop constraint occupation;

但由于我没有定义约束名称,它说无效的约束名称。有没有办法删除约束?我想我可以更改表并添加约束的名称,然后将其删除,但还有其他方法吗?

4

2 回答 2

1

运行此查询:

select * from all_constraints where table_name = 'REGISTRATION';

您会找到约束名称。

编辑:我还建议你有一个表Occupations并用外键替换当前约束。(如果您已经想这样做,请向我道歉)。此外,规范化,职业可能有 ID,并且应在这些 ID 上定义外来。

于 2012-11-22T06:26:28.193 回答
0

尝试在 USER_CONSTRAINTS 表中查询 CONSTRAINT_NAME,它必须为您创建的约束生成系统名称。

select * from USER_CONSTRAINTS
where owner='<your_schema>' and CONSTRAINT_TYPE='C';
于 2012-11-22T06:27:52.827 回答