Объясните, пожалуйста разницу между "NULL" и "Значение по умолчанию: NULL" ?!
Допустим, если при добавлении в таблицу записи, в поле `name` ничего не попадает, база должна подставить NULL. Как этого добиться. Что выставлять "NULL" или "Значение по умолчанию: NULL" ?
Логика подсказывает, что нужен второй вариант, но зачем тогда первый ?
И как тогда выставить значение NOT NULL, что бы запись не добавлялась в БД при отсутствии значения для которого в ячейке стоит NN ?
Заранее спасибо.
Спустя 54 минуты, 44 секунды (23.12.2011 - 13:55) Guest написал(а):
Цитата (RCuPeR @ 23.12.2011 - 10:00) |
Объясните, пожалуйста разницу между "NULL" и "Значение по умолчанию: NULL" ?! |
Хм... Ну по втором названию, логично было бы предположить, что значение по умолчанию NULL будет подставляться автоматически, если во время INSERT вы не указали это поле.
Цитата (RCuPeR @ 23.12.2011 - 10:00) |
И как тогда выставить значение NOT NULL |
Для этого есть чекбокс при создании таблицы, так и называется "NOT NULL"
Спустя 1 час, 53 минуты, 28 секунд (23.12.2011 - 15:48) RCuPeR написал(а):
Почему есть поле NOT NULL и в него ничего не добавляется, т.е пусто, запись все равно вставляется в базу ?
Выдает WARNING, но запрос происходит !
Листинг:
Выдает WARNING, но запрос происходит !
Листинг:
Свернутый текст
CREATE TABLE IF NOT EXISTS `phpfox_exotichoroscopes_data` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`type` int(2) NOT NULL,
`zodiac` int(1) DEFAULT NULL,
`date_begin` varchar(10) DEFAULT NULL,
`date_end` varchar(10) DEFAULT NULL,
`name` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
Спустя 31 минута, 53 секунды (23.12.2011 - 16:20) Michael написал(а):
Что то ты не правильно смотришь.
Если полю ничего не указано, что вставлять, то DEFAULT или AUTO_INCREMENT отработают (если есть). Иначе - NULL будет пробовать вставляться. Если поле not null, то ошибка будет и вставки не произойдет.
Если полю ничего не указано, что вставлять, то DEFAULT или AUTO_INCREMENT отработают (если есть). Иначе - NULL будет пробовать вставляться. Если поле not null, то ошибка будет и вставки не произойдет.
Цитата |
Объясните, пожалуйста разницу между "NULL" и "Значение по умолчанию: NULL" ?! |
NULL - это значит в поле в принципе можно NULL записать, а в "Значение по умолчанию" можно и другое выставить в том числе естественно и NULL.
Спустя 6 минут, 17 секунд (23.12.2011 - 16:26) ZSH написал(а):
`name` varchar(200) NOT NULL DEFAULT '',//пустая строка
если NOT NULL, то нужно указывать DEFAULT чтобы было чем заполнить ячейку.
Спустя 42 минуты, 36 секунд (23.12.2011 - 17:09) RCuPeR написал(а):
Цитата |
Если полю ничего не указано, что вставлять, то DEFAULT или AUTO_INCREMENT отработают (если есть). Иначе - NULL будет пробовать вставляться. Если поле not null, то ошибка будет и вставки не произойдет. |
Но он все равно вставляет и добавляет в ту колонгу где пусто "NULL".
Цитата |
если NOT NULL, то нужно указывать DEFAULT чтобы было чем заполнить ячейку. |
А сделать так, что бы возвращало Fatal Error и запрос не происходил невозможно ?
Спустя 14 минут, 1 секунда (23.12.2011 - 17:23) dadli написал(а):
RCuPeR
как я понял, ти не хочиш вставит пустую значеню в таблице, если так, можеш проверят пусто ли нет етот переменная средствами пхп. например через empty(). если пусто, то exit() и всо.
как я понял, ти не хочиш вставит пустую значеню в таблице, если так, можеш проверят пусто ли нет етот переменная средствами пхп. например через empty(). если пусто, то exit() и всо.
Спустя 22 минуты, 48 секунд (23.12.2011 - 17:46) RCuPeR написал(а):
Цитата (dadli @ 23.12.2011 - 14:23) |
RCuPeR как я понял, ти не хочиш вставит пустую значеню в таблице, если так, можеш проверят пусто ли нет етот переменная средствами пхп. например через empty(). если пусто, то exit() и всо. |
Да, это конечно выход. Но, думал, это возможно на уровне MySQL.
Спустя 7 минут, 55 секунд (23.12.2011 - 17:54) ZSH написал(а):
Цитата |
Да, это конечно выход. Но, думал, это возможно на уровне MySQL. |
это правильный выход, зачем дергать базу если данные не готовы к сохранению?
Спустя 1 минута, 55 секунд (23.12.2011 - 17:55) RCuPeR написал(а):
Цитата (ZSH @ 23.12.2011 - 14:54) | ||
это правильный выход, зачем дергать базу если данные не готовы к сохранению? |
Да-да, так и буду делать.
Но все равно, очень удивился когда увидел, что в базу уходят пустые данные даже при NOT NULL.
_____________
Гнусный социопат с комплексом Бога.