Ошибка # 1265 - Невозможно вставить пустое значение в поле по умолчанию «none» - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь сделать простой INSERT через phpMyAdmin в таблицу со столбцом с именем «date_end» со значением типа «DATETIME» и значением по умолчанию, равным «none» (поэтому при вставке строки INSERT она пуста поле не должно заканчиваться значением) и когда я пытаюсь вставить что-то вроде этого:

INSERT INTO `tasks` 
            (`id`, `customer`, `technician`, `date_start`, `date_end`, `description`) 
    VALUES (NULL, '', '', '', '', '');

Я получаю следующую ошибку: # 1265 - усеченные данные для столбца «date_end» в строке 1 , а затем значения, вставленные для «data_start» и «data_end», равны «0000-00-00 00» : 00: 00 'вместо пустого поля (это происходит только тогда, когда' date_start 'и / или' date_end 'пусты в инструкции INSERT).

Я перешел с Wamp на Xampp, а в Wamp этого не произошло, так что я думаю, что-то связано с конфигурацией mysql? Я не уверен.

Я использую MariaDB 10.1.37 (что, по-моему, проблема) с PHP 7.3.0 и apache 2.4.37.

1 Ответ

0 голосов
/ 14 января 2019

В MySQL / MariaDB поля даты не могут содержать пустую строку. По умолчанию без строгого режима SQL они конвертируют их в нулевую дату, которая все равно будет датой, хотя и недопустимой, а не пустой строкой. Вы можете установить в поле даты значение NULL и передать значение NULL, если значение неизвестно.
Начиная с версии MariaDB 10.2.4 , по умолчанию включен строгий режим SQL, который больше не позволяет вставлять пустые даты в БД. Подробнее о строгом режиме SQL

Если включен строгий режим, «0000-00-00» не разрешается, и вставки выдают ошибку, если только не указан IGNORE. Для INSERT IGNORE и UPDATE IGNORE «0000-00-00» разрешено, а вставки выдают предупреждение.

Проверьте ваш режим SQL MariaDB с этим SQL через phpMyAdmin: SELECT @@global.sql_mode;
Если настройки содержат STRICT_ALL_TABLES или STRICT_TRANS_TABLES, тогда строгий режим включен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...