如何在SQL Developer中备份全表数据为脚本及批量清空表数据
1. 在SQL Developer中将所有表数据导出为备份脚本
- 打开SQL Developer并连接到目标数据库
- 在左侧导航栏展开对应连接节点,找到目标Schema(用户),右键点击选择「导出」
- 在导出向导里,将「格式」设置为SQL插入,点击「下一步」
- 「对象类型」中只勾选「表」,继续点击「下一步」
- 选中需要导出的所有表(直接全选即可),再点击「下一步」
- 进入「选项」页面按需配置:
- 若需要备份表结构,勾选「包含创建表语句」
- 设置输出文件的保存路径和名称(可选择导出到单个脚本,也可按表拆分多个脚本)
- 可调整插入语句格式,比如是否启用批量插入、是否自动添加COMMIT等
- 确认所有设置无误后点击「完成」,等待导出完成
2. 一次性Truncate所有表数据
注意:由于外键约束的限制,直接Truncate关联表会报错,需按以下步骤操作:
第一步:禁用所有外键约束
执行以下SQL生成禁用外键的脚本,复制生成的语句执行:
SELECT 'ALTER TABLE ' || table_name || ' DISABLE CONSTRAINT ' || constraint_name || ';' FROM user_constraints WHERE constraint_type = 'R';
第二步:生成并执行Truncate语句
执行以下SQL生成所有表的Truncate命令,复制后运行:
SELECT 'TRUNCATE TABLE ' || table_name || ';' FROM user_tables WHERE table_name NOT LIKE 'BIN$%'; -- 过滤回收站中的表
第三步:重新启用外键约束
执行以下SQL生成启用外键的脚本,复制执行即可:
SELECT 'ALTER TABLE ' || table_name || ' ENABLE CONSTRAINT ' || constraint_name || ';' FROM user_constraints WHERE constraint_type = 'R';
内容的提问来源于stack exchange,提问作者Abinnaya
相关产品推荐
相关产品推荐

