2017-03-08 23 views
0

Im Oracleで作業しているテーブルのプライマリIDの自動インクリメントシーケンスを作成したい。LiquibaseでOracleシーケンスを作成する

Liquibaseでは、の列は、OracleではAdd Auto Incrementでサポートされていません。だから、どのように特定のテーブルのシーケンスを追加することができます。

以下は私が現在持っているものです。

<databaseChangeLog 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"> 

    <property name="now" value="now()" dbms="mysql,h2"/> 
    <property name="now" value="current_timestamp" dbms="postgresql"/> 
    <property name="now" value="sysdate" dbms="oracle"/> 
    <property name="now" value="GETDATE()" dbms="mssql"/> 

    <property name="autoIncrement" value="true" dbms="mysql,h2,postgresql,mssql"/> 

    <property name="floatType" value="float4" dbms="postgresql, h2"/> 
    <property name="floatType" value="float" dbms="mysql, oracle, mssql"/> 

    <changeSet id="20170122022905-1" author="test"> 
     <createTable tableName="certificate_metadata"> 
      <column name="id" type="bigint" autoIncrement="${autoIncrement}"> 
       <constraints primaryKey="true" nullable="false"/> 
      </column> 

      <column name="org_id" type="bigint"> 
       <constraints unique="true" nullable="false"/> 
      </column> 

      <column name="certificate_id" type="uuid"> 
       <constraints nullable="false"/> 
      </column> 

      <column name="type" type="varchar(30)"> 
       <constraints nullable="false"/> 
      </column> 

      <column name="expiry_date" type="timestamp"> 
       <constraints nullable="true"/> 
      </column> 

      <column name="created_date" type="timestamp"> 
       <constraints nullable="true"/> 
      </column> 

      <column name="updated_date" type="timestamp"> 
       <constraints nullable="true"/> 
      </column> 
     </createTable> 
     <dropDefaultValue tableName="certificate_metadata" columnName="created_date" columnDataType="datetime"/> 
     <dropDefaultValue tableName="certificate_metadata" columnName="updated_date" columnDataType="datetime"/> 
    </changeSet> 
</databaseChangeLog> 

答えて

2

Oracle 12cは自動インクリメントをサポートしています。したがって、Liquibaseにサポートを提供するか、sqlplusのスクリプトを使用して "ネイティブ"にテーブルを作成する必要があります

関連する問題