Derby-entspricht der DB2 ist "not NULL WITH DEFAULT"

Bin ich zu untersuchen, wie praktikabel es ist, ändern sich einige unit-tests (für eine Anwendung auf DB2) zu verwenden Derby. Gefunden haben diese Frage, wo die Antwort behauptet, dass DB2 und Derby sind sehr gut verträglich, es schien eine Möglichkeit zu nehmen DDL aus der DB2-Datenbank, und führen Sie es auf eine Derby-Datenbank. Aber ich scheine gefunden zu haben, in einem Fall, in dem Derby nicht mit Derby-DDL.

So, ich habe DDL geschrieben für DB2 9.1, die wie folgt aussieht:

CREATE TABLE FOO (
  FOO_ID CHAR(17) NOT NULL,
  FOO_SOMESTUFF CHAR(17) NOT NULL WITH DEFAULT ,
  FOO_MORESTUFF CHAR(1) NOT NULL WITH DEFAULT ,
  FOO_DT DATE NOT NULL WITH DEFAULT 
);

Läuft diese DDL in ij nicht funktioniert, bekomme ich diesen syntax Fehler:

ij> run 'c:/derby/db-derby-10.6.1.0-bin/foo.sql';
ij> CREATE TABLE FOO (
            FOO_ID CHAR(17) NOT NULL,
            FOO_SOMESTUFF CHAR(17) NOT NULL WITH DEFAULT ,
            FOO_MORESTUFF CHAR(1) NOT NULL WITH DEFAULT ,
            FOO_DT DATE NOT NULL WITH DEFAULT
    );
ERROR 42X01: Syntax error: Encountered "," at line 3, column 62.
Issue the 'help' command for general information on IJ command syntax.
Any unrecognized commands are treated as potential SQL commands and executed dir
ectly.
Consult your DBMS server reference documentation for details of the SQL syntax s
upported by your server.

Was ist der DDL für das Derby, das Ergebnis ist die Standard-Werte der DB2-DDL?
Ich verstehe, dass ich möglicherweise ändern Sie die DDL -, es ist voll von seltsamen Sachen wie AUDIT NONE und DATA CAPTURE und CCSID EBCDIC dass ich bin zu haben, um loszuwerden, der für Derby, um zu arbeiten. Aber säumige Zeug zum all-Rohlinge ist eine große Sache für diese codebase, ob es eine andere in-memory-Datenbank, dass es besser wäre als Derby an diesem bin ich offen für Vorschläge.

Schreibe einen Kommentar