1

私は h2 データベースを持っています。SQL スクリプトを生成し、その直後にこのデータベースの名前を変更します。

私はそのようなことをします

        Script.execute("jdbc:h2:" + directory + File.separatorChar + dbName, user, password, file);
Date d = new Date();
        Timestamp t = new Timestamp(d.getTime());
        File oldfile = new File(directory + File.separatorChar + dbName + ".h2.db");
        File newfile = new File(directory + File.separatorChar + t.getTime() + "backup.h2.db");
       oldfile.renameTo(newfile)

しかし、名前の変更に失敗しました! スクリプトがデータベースを開く原因だと思いますが、その直後にデータベースを閉じてファイルの名前を変更するにはどうすればよいですか? ありがとう

解決策:コマンドの後に追加するだけScriptです。助けてくれてありがとう

Connection conn = DriverManager.getConnection("jdbc:h2:" + directory + File.separatorChar + dbName, user, password);
        conn.prepareStatement("SHUTDOWN DEFRAG;").execute();
        conn.close();
4

0 に答える 0