2016-05-04 11 views
4

はJOOQ 3.5.xのでのVerticaのテーブルを作成しようとしている:JOOQでスキーマを作成するには?

Connection connection = create(); 
DSLContext dslContext = DSL.using(connection); 
Field<String> myColumn = DSL.field("my_column", SQLDataType.VARCHAR); 
Table table = DSL.tableByName("my_schema", "my_table"); 
dslContext.createTable(table) 
     .column(myColumn, myColumn.getDataType()) 
     .execute(); 

これは私がそれを解決することができSchema "my_schema" does not exist

に失敗:

dslContext.execute("create schema if not exists my_schema"); 

が、存在する場合、私は思っていましたJOOQでスキーマを作成するよりエレガントな方法は?

おかげ

答えて

1

現在JOOQでは、古いSQLを計画するために戻ってドロップする必要がありますので、サーバーとスキーマ管理に対して実行できる可能なDDL文のちょうどサブセットがまだ含まれていませんカバーしています。あなたは、最新のバージョン3.8を見て開始する必要があり、作業DDLの多くを行う必要がある場合、これは機能を拡張しているよう

のCREATE TABLEまたはALTER TABLEステートメントの中で

  • DEFAULTの列の値を含むように
  • IFがDROPステートメントに存在する場合
  • CREATEステートメントには存在しない場合
  • ALTER TABLE .. {RENAME | | RENAME COLUMN | RENAME CONSTRAINT}文

バージョン3.6は

  • ALTER TABLE一時テーブルを作成
  • ALTER TABLE DROP CONSTRAINT
  • (UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECKとの)制約を追加

    を添加
+1

リリース3.9では次のように追加されます - さまざまなRENAME文 - {CREATE | ALTER | DROP} SCHEMAステートメント - ALTERおよびDROPステートメントの有用なIF EXISTS節 - CREATEステートメントの有用なIF NOT EXISTS節 - 部分インデックスのサポート(CREATE INDEX .. WHERE) - ASCのサポート| CREATE INDEX文でのDESCの順序付け -- OracleのCONSTRAINT .. USING INDEX ..句のサポート - IDENTITY列のサポート - 制約の構築のサポートの向上 –

関連する問題