the*_*her 3 delete oracle-11g-r2 oracle-11g
我有一个小问题。我必须从我们的数据库中删除所有数据。我不想删除表,只想删除数据集。
总共有47张桌子。
我尝试了以下方法:
Delete FROM(select TABLE_NAME from USER_TABLES);
Delete FROM(select * from ALL_ALL_TABLES Where OWNER = 'DB_NAME')
Run Code Online (Sandbox Code Playgroud)
但这是无效的。如何有效地从所有表中删除所有数据?
小智 7
生成您需要的语句
select 'DELETE FROM '||table_name||' ;' from user_tables;
Run Code Online (Sandbox Code Playgroud)
更好的是使用TRUNCATE而不是DELETE. 这将防止在重做日志中生成额外的重做向量 - 最后你想要做的只是摆脱数据。它还可以避免DELETE表具有的任何触发器的所有操作。
select 'TRUNCATE TABLE '||table_name||' ;' from user_tables;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31978 次 |
| 最近记录: |