For anyone
encountering the "Field 'xxx' doesn't have a default value" when
running insert/update/replace statement on MariaDB, I found that
this is actually caused by the sql mode STRICT_TRANS_TABLES. This
also fixes when a trigger updates the default value of the
field. I believe the default options for MariaDB windows
installer cause this option to be enabled, whereas I had previous
never designed my application for the various modes supported.
You can also fix the issue by giving every field in the table an
explicit default value of 0 or '' except for text/longtext
columns. I choose not to do that since I don't know how many
other things change with STRICT_TRANS_TABLES.
If you change my.ini / my.cnf to sql-mode="", you won't have this
error occur anymore. You can run SELECT @@GLOBAL.sql_mode; on
your mysql server and mariadb server to compare what the current
settings are.
This is my first post to the MariaDB mailing list. Sorry if I did
it wrong. I've been using MySQL for over 10 years and decided to
migrate to MariaDB now.
--
Bruce Kirkpatrick
386-405-4643