|
|
|
| Если полю "по умолчанию" стоит значение NOT NULL , то при попытке сделать его уникальным выскакивает ошибка ..почему?
#1062 - Duplicate entry 'NOT NULL' for key 2
|
| |
|
|
|
|
|
|
|
для: serjinio
(07.10.2009 в 11:35)
| | Потому что поле не может принимать значение NULL. Да и смысла в этом нет - вы не сможете присвоить двум полям значение NULL одновременно. Если уж совсем глубоко копать, то ни одному полю нельзя присваивать NULL - это неопределенное значение, под которым может скрываться любое из уже существующих. С точки зрения логики базы данных - это недопустимо. | |
|
|
|
|
|
|
|
для: cheops
(07.10.2009 в 12:08)
| | Поле, на котором построен уникальный индекс, может оказываться в состоянии NULL, в отличие от поля, на котором построен индекс первичный. И поле можно устанавливать в состояние NULL , если оно не включено в первичный ключ.
При изменении описания поля с NULL на NOT NULL ему (во всех NULL-строках) присваивается значение DEFAULT. И если оно оказалось что таких строк не одна, или что уже были строки с таким значением в этом поле - сервер выполнять запрос откажется. Н ачто автор вопроса и нарвался.
Синтаксически установка поля в состояние NULL записывается, как присваивание ему этого псевдозначения. UPDATE tbl SET name=NULL WHERE id=13613
Общая логика БД при работе с полем в состоянии NULL - значение данной ячейки неизвестно.
Оказываясь аргументом операции или функции (кроме специально предназначенных для, типа COALESCE) распространяет себя на результат операции /функции, игнорируя значения других аргументов. | |
|
|
|