有没有办法将derby数据库表行转换为SQL插入语句

时间:2015-10-26 19:24:43

标签: java derby ddlutils

我已使用ddlUtils成功导出了Derby架构但是如何在derby中导出表数据以插入SQL语句?

2 个答案:

答案 0 :(得分: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()));
        }
    }
}

上面有一个known issue,它在insert语句中生成了错误的表名。您可以通过修补输出来解决此问题:

System.out.println(
    ctx.fetch(table).formatInsert().replace("UNKNOWN_TABLE", table.getName()));

(免责声明:我为jOOQ背后的公司工作)

答案 1 :(得分:0)

  1. 像“select * from schema.table;”一样运行您的 SQL 请求。
  2. 在显示行的窗口中,用键盘选择它们,而不是“control+A”没有效果。
  3. 右键单击并在上下文菜单中选择“Show SQL Script for INSERT”:显示一个弹出窗口,您只需将内容复制到文本文件即可。

注意:我使用 Netbeans 8.2。