[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разница "NULL" и "Значение по умолчанию: NULL"
RCuPeR
Добрый день. Собственно сабж.

Объясните, пожалуйста разницу между "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" ?!

huh.gif Хм... Ну по втором названию, логично было бы предположить, что значение по умолчанию NULL будет подставляться автоматически, если во время INSERT вы не указали это поле.
Цитата (RCuPeR @ 23.12.2011 - 10:00)
И как тогда выставить значение NOT NULL

Для этого есть чекбокс при создании таблицы, так и называется "NOT NULL"

Спустя 1 час, 53 минуты, 28 секунд (23.12.2011 - 15:48) RCuPeR написал(а):
Почему есть поле NOT NULL и в него ничего не добавляется, т.е пусто, запись все равно вставляется в базу ?
Выдает 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, то ошибка будет и вставки не произойдет.
Цитата
Объясните, пожалуйста разницу между "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() и всо.

Спустя 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)
Цитата
Да, это конечно выход. Но, думал, это возможно на уровне MySQL.

это правильный выход, зачем дергать базу если данные не готовы к сохранению?

Да-да, так и буду делать.
Но все равно, очень удивился когда увидел, что в базу уходят пустые данные даже при NOT NULL.


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.