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