我已经使用 ddlUtils 成功导出了 Derby 模式,但是如何在 derby 中导出表数据以插入 SQL 语句?
问问题
438 次
2 回答
1
如果您愿意为此使用第三方工具,您可以使用jOOQ
public class ExportAsInsert {
public static void main(String[] args) {
try (DSLContext ctx = DSL.using(url, user, password)) {
ctx.meta()
.getSchemas()
.stream()
// Filter out those schemas that you want to export
.filter(schema -> schema.getName().equals("TEST"))
// Get the tables for each schema...
.flatMap(schema -> schema.getTables().stream())
// ... and format their content as INSERT statements.
.forEach(table -> System.out.println(ctx.fetch(table).formatInsert()));
}
}
}
存在一个已知问题,即上面在插入语句中生成了错误的表名。您可以通过修补输出来解决此问题:
System.out.println(
ctx.fetch(table).formatInsert().replace("UNKNOWN_TABLE", table.getName()));
(免责声明:我为 jOOQ 背后的公司工作)
于 2015-11-12T09:11:18.807 回答
0
- 运行您的 SQL 请求,例如“select * from schema.table;”。
- 在显示行的窗口中,用键盘将它们全部选中,而不是“control+A”没有效果。
- 右键单击并在上下文菜单中选择“Show SQL Script for INSERT”:显示一个弹出窗口,您只需将内容复制到文本文件即可。
注意:我使用 Netbeans 8.2。
于 2021-01-25T18:01:33.017 回答