Java ApacheDerby:使用数据创建SQL转储
有没有简单的方法可以从ApacheDerby数据库创建完整的SQL转储?Java ApacheDerby:使用数据创建SQL转储,java,derby,Java,Derby,有没有简单的方法可以从ApacheDerby数据库创建完整的SQL转储? 使用dblook工具,我成功地将数据库模式转储到一个sql文件中,但是似乎没有办法获得包含的数据 SquirreSQL可以为您的数据创建INSERT语句。那对你有用吗?我不知道是否存在一个库来从应用程序中执行同样的操作,Derby有批量导入/导出的过程。下面是使用ij工具导出APP.MESSAGES表的示例: >ij ij version 10.3 ij> connect 'jdbc:derby:dbName'
使用dblook工具,我成功地将数据库模式转储到一个sql文件中,但是似乎没有办法获得包含的数据 SquirreSQL可以为您的数据创建INSERT语句。那对你有用吗?我不知道是否存在一个库来从应用程序中执行同样的操作,Derby有批量导入/导出的过程。下面是使用
ij
工具导出APP.MESSAGES
表的示例:
>ij
ij version 10.3
ij> connect 'jdbc:derby:dbName';
ij> CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE('APP', 'MESSAGES',
'myfile.del', null, null, 'UTF-8');
0 rows inserted/updated/deleted
有关您的版本,请参阅
这不是你要求的格式。除此之外,您可能还需要借助外部工具。此unix shell脚本将APP database中所有表的数据转储到~/tmp/export/[TABLE].del文件中。这里假设数据库位于当前工作目录中的文件夹“db”中,并且derby安装在~/derby下。所以你看,它是非常定制的(为我自己的特殊需要而构建),但很容易调整。不,它不会进行SQL转储,它们都是derby CSV导出格式。但是,您可以使用此格式将数据导入到语句中,或导入到。希望这有帮助 UPD:我把我的derby脚本放在一起,好好享受吧!它有SQL转储;-)
你真的在寻找一个管理工具——你可能在这方面运气更好
#!/bin/sh
PATH=$PATH:$HOME/derby/bin
DIR="$HOME/tmp/export"
printf "connect 'jdbc:derby:db';\nshow tables in APP;" > show.sql
TABLES=$(ij show.sql | grep ^APP | awk '{print $2}' | sed 's/|//g')
echo $TABLES
for TABLE in $TABLES;
do
echo $TABLE
printf "connect 'jdbc:derby:db';\nCALL SYSCS_UTIL.SYSCS_EXPORT_TABLE (null,'$TABLE','$DIR/$TABLE.del',null,null,null);" > export.sql
ij export.sql
if [ $? -ne "0" ]; then
exit 1
fi
done