Nullable TIMESTAMP columns in MySQL are not nullable.

I noticed that in MySQL, if you add a TIMESTAMP column without specifying NULL or NOT NULL it defaults to NOT NULL which is backwards from every other type.
If I specify for TIMESTAMP columns in the Liquibase changelog, then load it into an HSQL database and do a diff against an empty MySQL database, the SQL output that it uses to create the table specifies “columnName TIMESTAMP” instead of “columnName TIMESTAMP NULL”.

Would it be hard to change it so that the SQL script generated by Diff always specifies ‘NULL’ for nullable columns?

Is that just TIMESTAMP columns?  It seemed that sybase was the only database that actually needed the NULL clause, from my earlier testing.


This is still a problem and it’s exactly as cpjust describes, if I add a constraint that sets nullable to true it doesn’t issue a create statement with “columnName TIMESTAMP NULL”.

For now I’m creating the column like so as a workaround: 

I created to track the bug