我遇到的问题是当我在Oracle中运行以下命令时,我遇到错误.
Truncate table mytable;
错误:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
我发现,这个mytable与其他表有关系.这就是为什么Truncate命令不能继续.如何使用sql语句使用Truncate命令从myTable中删除数据?
解决方法
您必须将TRUNCATE语句交换为DELETE语句,缓慢并记录,但是当约束到位时,这样做就可以了.
DELETE mytablename;
或者您可以找到引用该表的外键,并暂时禁用它们.
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';' from user_constraints where R_CONSTRAINT_NAME='<pk-of-table>';
其中pk-of-table是要截断的表的主键的名称
运行上述查询的输出.当这样做完成时,请记住再次启用它们,只需将DISABLE CONSTRAINT更改为ENABLE CONSTRAINT