Comment charger un dump mysql pour la base de données hsqldb?
J'ai un fichier sql qui crée une base de données dans mysql:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`machine`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`machine` (
`id` INT NOT NULL ,
`name` VARCHAR(45) NULL ,
PRIMARY KEY (`id`) );
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Maintenant, je voudrais charger ce fichier dans 2 base de données hsqldb. Que dois-je modifier dans le dump mysql pour charger les données dans hsqldb?
Actuellement, je utiliser ce code (groovy) pour exécuter le fichier sql:
def embeddedDbSettings = [url:'jdbc:hsqldb:file:mydb', user:'sa', password:'', driver:'org.hsqldb.jdbcDriver'];
sql = Sql.newInstance(embeddedDb);
sql.executeInsert new File("./sql/create_database.sql").text;
et tout le temps que j'ai ce cryptage exception:
Exception in thread "main" java.sql.SQLException: unknown token
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
at groovy.sql.Sql.executeInsert(Sql.java:1440)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at de.hpi.ecir.eval_script.Convert2Excel.main(Convert2Excel.groovy:37)
Caused by: org.hsqldb.HsqlException: unknown token
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.ParserBase.read(Unknown Source)
at org.hsqldb.ParserDDL.compileCreate(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 13 more
OriginalL'auteur Skarab | 2010-09-28
Vous devez vous connecter pour publier un commentaire.
CREATE SCHEMA mydb AUTHORIZATION DBA
if not exists
- hsqldb ne prend pas en charge cette commandeExécuter chaque commande séparément:
OriginalL'auteur Skarab
Vous devez également :
de :
:
OriginalL'auteur Antoine
Vous n'avez pas à exécuter chaque commande séparément, hsqldb fonctionne très bien si vous exécutez les scripts tout à la fois, tant que la totalité de vos jetons sont valides.
OriginalL'auteur Yemi Kudaisi
Résolu ce problème en utilisant IntelliJ IDEA :
OriginalL'auteur Florian Lopes
J'ai résolu ce problème en s'appuyant sur RazorSQL. Il n'est pas gratuit, mais avec la version d'évaluation que vous avez assez pour l'exécution de la conversion de MySQL à HSQLDB. Il prend également en charge d'autres DB conversions.
Le seul problème que j'ai détecté lors de la conversion a été les clés primaires. Donc en gros, le suivant du code généré extrait ne serait pas pour moi:
J'ai dû supprimer l'IDENTITÉ bits.
OriginalL'auteur narko