структуры таблицы:Вставки на MariaDB терпит неудачу, когда ommitting не по умолчанию полого
CREATE TABLE `setup_int` (
`key` VARCHAR(50) NOT NULL,
`val` INT(11) NOT NULL,
PRIMARY KEY (`key`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
Как вы можете увидеть поля NOT NULL
-полей и не имеют значения по умолчанию.
Обновлено до MariaDB 10.1.21 и имеет следующую проблему: Следующий запрос завершается с ошибкой без сообщения об ошибке!
INSERT INTO `setup_int` (`key`) VALUES ('test');
Причина, по-видимому, в отсутствии значения по умолчанию.
- Если я добавлю значение по умолчанию в таблицу, вставка будет успешной.
- Если я изменю
NOT NULL
наNULL
, вставка будет успешной. - ЕСЛИ Я делаю это на MariaDB 10.1.20, вставка выполнена успешно.
- Если я делаю вставку с обоими полями, вставка успешно выполнена.
Это работает:
INSERT INTO `setup_int` (`key`,`val`) VALUES ('test',0);
Вопрос: Что я могу сделать (некоторые настройки, или что-то еще), чтобы сделать MariaDB 10.1.21, чтобы справиться с этой ситуацией, как и раньше. Сейчас я не могу изменить все таблицы, и сейчас я не могу отказаться.
Основная проблема заключается в том, что запрос, выполняемый PHP, возвращает true
, хотя вставка не удалась!
Я не вижу, что проблема здесь. Если вы настроите таблицу и скажите, что 'val' не может быть NULL, тогда вы должны указать значение для val в каждой вставке. Поэтому, если вы не можете предоставить это значение, удалите 'NOT NULL' или добавьте DEFAULT – RiggsFolly
@RiggsFolly. Я согласен, это поведение кажется нормальным и ожидаемым. –
Если вы оставите 'val' пустым, работали в 10.1.20, то, вероятно, была ошибка в 10.1.20, поэтому возврат будет означать, что вы когда-либо сможете обновить базу данных – RiggsFolly