Disable SQL mode "STRICT_TRANS_TABLES"

Starting with MariaDB 10.2.4, a mode is enabled that allows only strict type values ​​for rows in the table STRICT_TRANS_TABLES.

To disable this, remove the value of STRICT_TRANS_TABLES in sql_mode.

[mysqld]

# Change before
sql_mode = "STRICT_TRANS_TABLES, other values"

# After change
sql_mode = "other values"

Notes on upgrading MariaDB

Starting with MariaDB 10.2.4, a mode is enabled that allows only strict type values ​​for rows in the table STRICT_TRANS_TABLES.

If you get the following error, it is because STRICT_TRANS_TABLES is enabled.

DBD::mysql::st execute failed: Incorrect integer value:'free' for column `kimotosystem`.`book`.`price` at row 1. Following SQL is executed.

If you want to have the original MariaDB behavior, disable STRICT_TRANS_TABLES.

Do you want to completely repel invalid values ​​or fail inserts

In SQL mode, this value should be determined in terms of whether you want to completely repel the incorrect value or not want the insert to fail, depending on your project's requirements.

Since Perl has a looser programming language type, I feel that if STRICT_TRANS_TABLES is enabled, inserts are more likely to exit with an error.

Associated Information