Скрипт базы данных H2 нельзя импортировать в MySQL - PullRequest
0 голосов
/ 07 марта 2012

Я создал локальную базу данных H2, которую я всегда открывал в режиме MySQL для вставки данных. Теперь я хочу экспортировать его с SCRIPT, чтобы импортировать с phpMyAdmin в удаленную базу данных MySQL на удаленном сервере. Я получаю следующее:

SET LOCK_MODE 3;
;             
CREATE USER IF NOT EXISTS SA SALT '...' HASH '...' ADMIN;           
CREATE CACHED TABLE PUBLIC.RAWVALUEITEM(
    LANGUAGE VARCHAR(2) NOT NULL SELECTIVITY 1,
    RAWVALUE VARCHAR(40) NOT NULL SELECTIVITY 99,
    STRIPPED VARCHAR(40) NOT NULL SELECTIVITY 96
);
...

К сожалению, phpMyAdmin импорт не радует:

#1193 - Unknown system variable 'LOCK_MODE'

Когда я вручную удаляю инструкцию set, я получаю дополнительные ошибки:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS SA SALT '...' HASH '...' at line 1

Код, который я использую для экспорта базы данных в виде скрипта:

public static final String DB_DIR_LOCATION = "E:/Temp/FWDB/";
public static final String H2_CONNECTION = "jdbc:h2:file:"
    + DB_DIR_LOCATION + "FWDB_PHP_TEST" + "Mode=MySQL;IFEXISTS=TRUE";

public static void main(String[] args) throws SQLException {

    Connection conn = DriverManager.
        getConnection(H2_CONNECTION, "sa", "");

    PreparedStatement ps;

    ps = conn.prepareStatement("SCRIPT TO 'E:/Temp/FWDB/FWDB_EXPORT.gz' " 
        + "COMPRESSION GZIP");
    ps.execute();

}

Как создать скрипт из моей БД, который будет успешно импортирован phpMyAdmin на мой удаленный сервер?

1 Ответ

1 голос
/ 07 марта 2012

Сценарий SQL, сгенерированный командой SCRIPT TO , не является кроссплатформенным. Лучшим решением может быть использование инструмента базы данных, такого как SQuirreL DB Copy Plugin или другого инструмента базы данных .

...