|
|
|
| Какой смысл при создании таблицы в базе данных, например вот такой:
create table yra(id int(5), samolyot varchar(10), tata varchar(50) not null, primary key(id));
|
Какую роль играет not null при добавлении информации в базу данных через форму сайта? | |
|
|
|
|
|
|
|
для: Golovastik
(17.07.2010 в 01:33)
| | tata varchar(50) not null - поле не может содержать значение NULL, значит это поле обязательно для заполнения. Если в запросе не будет указано значение для этого поля, то будет вставлено значение по умолчанию. | |
|
|
|
|
|
|
|
для: sms-send
(17.07.2010 в 08:14)
| | >tata varchar(50) not null - поле не может содержать значение NULL, значит это поле обязательно для заполнения.
>Если в запросе не будет указано значение для этого поля, то будет ...
то было бы
>вставлено значение по умолчанию.
окажись оно указано в описании таблицы. Но оно и там указано не было.
Поэтому такой INSERT-запрос будет отвергнут, как ошибочный. | |
|
|
|
|
|
|
|
для: Trianon
(17.07.2010 в 10:20)
| | > такой INSERT-запрос будет отвергнут, как ошибочный.
Для mysql верно только в strict mode. В режиме по умолчанию всё-же ставит умолчательную пустую строчку. | |
|
|
|
|
|
|
|
для: sms-send
(17.07.2010 в 11:51)
| | Но если я даже ничего не заполню на форме сайта и нажму клавишу "ЕНТЕР" или кнопку, в базу данных просто добавится пустая строка, с номером ид, видите всё арвно заполняется пустотой и доьбавляется и на not null не реагирует. | |
|
|
|
|
|
|
|
для: Golovastik
(17.07.2010 в 16:18)
| | Строка нулевой длины и NULL - разные вещи.
Строка нулевой длины - является строкой и имеет все свойства строки, ту же длину, хоть и нулевую. А NULL обозначает отсутствие данных. | |
|
|
|
|
|
|
|
для: sms-send
(17.07.2010 в 16:40)
| | Хорошо ,читаем то тчо вы написали выше:
tata varchar(50) not null - поле не может содержать значение NULL,
|
А я ничего не заполняю при отправки формы, текстовые поля пусты, и они пустые и втаввляются в базу данных, и ваша фраза: "Не может содержать значения нуль", но как не может если она содержит и нуль добавляется в ячейку таблицы при отправки пустого текстового поля. | |
|
|
|
|
|
|
|
для: Golovastik
(17.07.2010 в 17:18)
| | > текстовые поля пусты
В них строки нулевой длины, это тоже строки. А NULL - это отсутствие значения в поле.
> нуль добавляется в ячейку таблицы
Прямо таки добавляется именно NULL, а не строчка ""? Видимо баг в СУБД.
Покажите запрос, которым данные из приложения добавляются в таблицу.
Пример на PHP:
<?php
var_dump(@$abc); // выводит NULL, потому что переменной не существует,
// значит не существует и значения
$abc = ''; // определяем значение переменной
var_dump(@$abc); // выводит string(0) "", переменная существует и содержит
// в себе строку нулевой длины
var_dump(NULL===''); // bool(false), потому что NULL и пустая строка - не одно и тоже
|
| |
|
|
|
|
|
|
|
для: Golovastik
(17.07.2010 в 17:18)
| | форма, её поля, процесс отправки значенияй этих полей, всё это не имеет никакого отношения к работе с сервером БД.
Не создавайте ненужных взаимосвязей. Применяйте бритву Оккама. | |
|
|
|