Я использую Liquibase для создания баз данных MySQL и HSQLDB.
В нескольких таблицах у меня есть столбец под названием «last_modified», который представляет собой TIMESTAMP последнего обновления этой конкретной записи.
<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 в качестве значения по умолчанию при обновлении?