错误 #1265 - 无法在默认 'none' 字段中插入空值
Error #1265 - Can't insert an empty value in a default 'none' field
我正在尝试通过 phpMyAdmin 将一个简单的 INSERT 插入到 table 中,该列的名称为 'date_end',类型值为 'DATETIME',默认值设置为 'none'(所以如果在插入时,在 INSERT 行它是空的,字段不应该以值结尾)并且当我尝试插入这样的东西时:
INSERT INTO `tasks`
(`id`, `customer`, `technician`, `date_start`, `date_end`, `description`)
VALUES (NULL, '', '', '', '', '');
我收到以下错误:#1265 - 截断了第 1 行 'date_end' 列的数据 ,然后为 'data_start' 和 'data_end' 是 '0000-00-00 00:00:00' 而不是空字段(只有当 'date_start' and/or 'date_end' 在 INSERT 语句中为空时才会发生这种情况)。
我已经从 Wamp 更改为 Xampp,而在 Wamp 中,这并没有发生,所以我猜是不是与 mysql 配置有关?我不确定。
我将 MariaDB 10.1.37(我认为这是问题所在)与 PHP 7.3.0 和 apache 2.4.37 一起使用。
在 MySQL/MariaDB 中,日期字段不能包含空字符串。默认情况下,如果没有 SQL 严格模式,他们会将它们转换为零日期,这仍然是一个日期,尽管无效,而不是空字符串。您可以将日期字段设置为NULL,如果值未知则传递NULL。
Since MariaDB version 10.2.4,他们默认启用 SQL 严格模式,不再允许将空日期插入数据库。
Read more about SQL strict mode
If strict mode is enabled, '0000-00-00' is not permitted and inserts produce an error, unless IGNORE is given as well. For INSERT IGNORE and UPDATE IGNORE, '0000-00-00' is permitted and inserts produce a warning.
通过 phpMyAdmin 使用此 SQL 检查您的 MariaDB SQL 模式:SELECT @@global.sql_mode;
如果设置包含 STRICT_ALL_TABLES
或 STRICT_TRANS_TABLES
则启用严格模式。
我正在尝试通过 phpMyAdmin 将一个简单的 INSERT 插入到 table 中,该列的名称为 'date_end',类型值为 'DATETIME',默认值设置为 'none'(所以如果在插入时,在 INSERT 行它是空的,字段不应该以值结尾)并且当我尝试插入这样的东西时:
INSERT INTO `tasks`
(`id`, `customer`, `technician`, `date_start`, `date_end`, `description`)
VALUES (NULL, '', '', '', '', '');
我收到以下错误:#1265 - 截断了第 1 行 'date_end' 列的数据 ,然后为 'data_start' 和 'data_end' 是 '0000-00-00 00:00:00' 而不是空字段(只有当 'date_start' and/or 'date_end' 在 INSERT 语句中为空时才会发生这种情况)。
我已经从 Wamp 更改为 Xampp,而在 Wamp 中,这并没有发生,所以我猜是不是与 mysql 配置有关?我不确定。
我将 MariaDB 10.1.37(我认为这是问题所在)与 PHP 7.3.0 和 apache 2.4.37 一起使用。
在 MySQL/MariaDB 中,日期字段不能包含空字符串。默认情况下,如果没有 SQL 严格模式,他们会将它们转换为零日期,这仍然是一个日期,尽管无效,而不是空字符串。您可以将日期字段设置为NULL,如果值未知则传递NULL。
Since MariaDB version 10.2.4,他们默认启用 SQL 严格模式,不再允许将空日期插入数据库。
Read more about SQL strict mode
If strict mode is enabled, '0000-00-00' is not permitted and inserts produce an error, unless IGNORE is given as well. For INSERT IGNORE and UPDATE IGNORE, '0000-00-00' is permitted and inserts produce a warning.
通过 phpMyAdmin 使用此 SQL 检查您的 MariaDB SQL 模式:SELECT @@global.sql_mode;
如果设置包含 STRICT_ALL_TABLES
或 STRICT_TRANS_TABLES
则启用严格模式。