我正在使用Liquibase生成MySQL和HSQLDB數據庫。
在幾個表中,我有一個名爲'last_modified'的列,它是該特定記錄上最後更新的TIMESTAMP。
默認值開啓更新Liquibase
<changeSet author="bob" id="7">
<createTable tableName="myTable">
<column autoIncrement="true" name="id" type="INT">
<constraints nullable="false" primaryKey="true" />
</column>
<column name="name" type="VARCHAR(128)">
<constraints nullable="false" />
</column>
<column name="description" type="VARCHAR(512)" />
<column defaultValueBoolean="true" name="enabled" type="BIT">
<constraints nullable="false" />
</column>
<column name="last_modified" type="TIMESTAMP"/>
</createTable>
<modifySql dbms="mysql">
<append value=" engine innodb" />
</modifySql>
</changeSet>
我注意到,如果我使用MySQL,該列生成的SQL是:
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
而如果我使用HSQLDB,在更新什麼情況下發生的,但我想有MySQL數據庫的相同行爲與更新時的默認值等於CURRENT_TIMESTAMP。
如何將CURRENT_TIMESTAMP設置爲默認值ON UPDATE?