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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...