sql – 在Oracle中截断表获取错误

前端之家收集整理的这篇文章主要介绍了sql – 在Oracle中截断表获取错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到的问题是当我在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

猜你在找的MsSQL相关文章