Description\n-----------\n\nDefault Values\n\nIf the SQL_MODE contains STRICT_TRANS_TABLES and you are inserting into a transactional table (like InnoDB), or if the SQL_MODE contains STRICT_ALL_TABLES, all NOT NULL columns which do not have a DEFAULT value (and are not AUTO_INCREMENT) must be explicitly referenced in INSERT statements. If not, an error like this is produced:\n\n``\nERROR 1364 (HY000): Field 'col' doesn't have a default value\n`\n\nIn all other cases, if a NOT NULL column without a DEFAULT value is not referenced, an empty value will be inserted (for example, 0 for INTEGER columns and '' for CHAR columns). See NULL Values in MariaDB:Inserting for examples.\n\nIf a NOT NULL column having a DEFAULT value is not referenced, NULL will be inserted.\n\nIf a NULL column having a DEFAULT value is not referenced, its default value will be inserted. It is also possible to explicitly assign the default value using the DEFAULT keyword or the DEFAULT() function.\n\nIf the DEFAULT keyword is used but the column does not have a DEFAULT value, an error like this is produced:\n\n`\nERROR 1364 (HY000): Field 'col' doesn't have a default value\n`\n\nDuplicate Values\n\nBy default, if you try to insert a duplicate row and there is a UNIQUE index, INSERT stops and an error like this is produced:\n\n`\nERROR 1062 (23000): Duplicate entry 'dup_value' for key 'col'\n``\n\nTo handle duplicates you can use the IGNORE clause, INSERT ON DUPLICATE KEY UPDATE or the REPLACE statement. Note that the IGNORE and DELAYED options are ignored when you use ON DUPLICATE KEY UPDATE.\n\nURL: https://mariadb.com/docs/server/reference/sql-statements/data-manipulation/inserting-loading-data/insert-default-duplicate-values