MySQL-запрос на вставку с отсутствующими ненулевыми полями

В настоящее время я пытаюсь использовать объектно-реляционный сопоставитель для 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)

0
задан RS7 9 June 2011 в 01:03
поделиться