2013-12-09 1 views
5

で作業していない:LiquiBaseを私がどのように見えるLiquiBaseをチェンジを経て、新しいテーブルを作成しようとするMySQLの自動インクリメント

<createTable tableName="mytable"> 
     <column name="id" type="number" autoIncrement="true"> 
      <constraints primaryKey="true" nullable="false"/> 
     </column> 
     <column name="name" type="varchar(50)"/> 
     <column name="description" type="varchar(255)"/> 
     <column name="image_path" type="varchar(255)"/> 
    </createTable> 

これは次のエラーで失敗します。私はAUTOINCREMENTを設定した場合

liquibase.exception.DatabaseException: 
Error executing SQL CREATE TABLE 
kkm.mytable (id numeric AUTO_INCREMENT NOT NULL, name VARCHAR(50) NULL, description 
      VARCHAR(255) NULL, image_path VARCHAR(255) NULL, 
      CONSTRAINT PK_BOUFFE PRIMARY KEY (id)): 
Incorrect column specifier for column 'id' 

=」偽 "、これは完全に動作します。
これは既知の問題ですか?

EDIT:

これが働いている:

<createTable tableName="mytable"> 
     <column name="id" type="number" autoIncrement="false"> 
      <constraints primaryKey="true" nullable="false"/> 
     </column> 
     <column name="name" type="varchar(50)"/> 
     <column name="description" type="varchar(255)"/> 
     <column name="image_path" type="varchar(255)"/> 
    </createTable> 

    <addAutoIncrement 
      columnDataType="int" 
      columnName="id" 
      incrementBy="1" 
      startWith="1" 
      tableName="mytable"/> 
+1

私は見つけることができる1つの違いがあります。上の例では(動作しません)、型を 'number'に設定します。その型の下の型は 'int'です。では、型を 'int'に設定しようとしましたか?また、[mysql doc](http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)は、 "... AUTO_INCREMENTに十分な大きさの整数データ型を使用します列... "だから多分整数でなければならないのでしょうか? – Jens

+0

@Jens確かにそれは問題でした、私はそれも昨日見つけて、答えを投稿するつもりでした –

+0

注:type = "number"はliquibaseのそれ以降のバージョンで修正する必要があります。私は信じています。 –

答えて

8

変更タイプ= "数" = "BIGINT"を入力します。

I、E

<createTable tableName="mytable"> 
     <column name="id" type="BIGINT" autoIncrement="true"> 
      <constraints primaryKey="true" nullable="false"/> 
     </column> 
     <column name="name" type="varchar(50)"/> 
     <column name="description" type="varchar(255)"/> 
     <column name="image_path" type="varchar(255)"/> 
    </createTable> 

は、それが動作ホープ.. !!!!

+0

私は実際にtype = "int"で解決しました –

関連する問題