В настоящее время я пытаюсь использовать объектно-реляционный сопоставитель для CodeIgniter, и у меня возникло то, чего я не ожидал.
У меня есть таблица с парой полей, некоторые из которых НЕ НУЛЕНЫ. Создается запрос на вставку, в котором отсутствуют поля NOT NULL - добавляется новая строка, но с пробелами для этих полей.
Я не знал, что MySQL проигнорирует поля NOT NULL, которых нет в запросе и все равно вставьте строку. Есть ли способ ограничить это?
- Edit -
Позвольте мне добавить еще несколько деталей и попытаться объяснить это немного подробнее
Вот пример таблицы:
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`color` varchar(40) COLLATE utf8_bin DEFAULT '',
`shape` varchar(40) COLLATE utf8_bin NOT NULL,
`size` varchar(40) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
Вот пример запроса:
INSERT INTO `test` (`shape`) VALUES ('foo')
У меня нет size
в моем запросе, но он все равно добавляет строку - это ожидается?
(Пример запроса был запущен в phpMyAdmin)