我在Oracle 8i的存储过程中truncate表,比如有表A,B,C
其中表A的主键是表B的外键,表C独立,那么我写
execute immediate 'truncate table C’;
execute immediate 'truncate table B’;
execute immediate 'truncate table A’;前两句没有问题,记录也清掉了,但执行第三句时出错,说表A的主键被其他表用作外键,而同样的语句用Delete from就没有问题。大家有什么建议吗
其中表A的主键是表B的外键,表C独立,那么我写
execute immediate 'truncate table C’;
execute immediate 'truncate table B’;
execute immediate 'truncate table A’;前两句没有问题,记录也清掉了,但执行第三句时出错,说表A的主键被其他表用作外键,而同样的语句用Delete from就没有问题。大家有什么建议吗
解决方案 »
- trigger要实时更新远程数据库,如何绕开网络不通问题?
- ORACLE序列的当前值可不可以修改?
- Oracle恢复的问题
- oracle10g文件夹共享问题
- 为什么我的10G安装完后,要打开localhost:1158/em而不是localhost:5500/em?
- 大家帮忙看一下
- 如何判断pl/sql中读取的文件不为空?
- 关于exp导出数据的问题?
- 如何在Oracle中取当前时间往后三天的时期??
- ********ORACLE 8 的奇怪问题,在线等待,解决马上给分!!**********
- Oracle中的datalink是怎么回事???那位大师能给我讲讲!!
- 急!急!关于ORACLE的Managerment Server问题
针对这一张表试一下吧。
1.删除外键
2.做truncate操作
3.建立外键
----------这样操作比用delete操作快。
alter table ADDRESS modify constraint ADDRESS_FK_PIN disable;
alter table SPECIALRECORD modify constraint SPECIALRECORD_FK_PIN disable;
alter table TRADE modify constraint TRADE_FK_PIN disable;
alter table EMPLOYMENT modify constraint EMPLOYMENT_FK_PIN disable;
alter table GUARANTEE modify constraint GUARANTEE_FK_PIN disable;
alter table ANNOUNCE modify constraint ANNOUNCE_FK_PIN disable;truncate table PERSON ;alter table PINCHANGE modify constraint PINCHANGE_FK_PIN enable;
alter table ADDRESS modify constraint ADDRESS_FK_PIN enable;
alter table SPECIALRECORD modify constraint SPECIALRECORD_FK_PIN enable;
alter table TRADE modify constraint TRADE_FK_PIN enable;
alter table EMPLOYMENT modify constraint EMPLOYMENT_FK_PIN enable;
alter table GUARANTEE modify constraint GUARANTEE_FK_PIN enable;
alter table ANNOUNCE modify constraint ANNOUNCE_FK_PIN enable;
我只奇怪:truncate受主外键约束,同样的语句用Delete from就没有问题。
??
1。是否有主外键直接用truncate肯定不行?
2。如果用程序控制外键,是否有编程自动得到外键名称并控制它的enable和disable属性的办法。
最好给出例子。