2014-02-05 5 views
-2

У меня есть таблица с столбцом, настроенным как NOT NULL.Отключить нарушение ограничений целостности: 1048

Я хотел бы вставить запись с NULL значением для этого столбца.

Как временно отключить эту проверку? Я думаю что-то вроде SET foreign_key_checks = 0;, но не для проверки внешнего ключа, но NOT NULL.

+2

NOT NULL означает, что он не может быть пустым, даже если цыганские дети падают с небес. – marekful

+0

Давай, я искал документацию и не мог найти способ сделать это, и задал вопрос. Вы можете подумать, что это плохая идея, но это не плохой вопрос. – user1032531

+0

Это плохой вопрос, потому что было бы ужасно непоследовательно встречать значения NULL в столбце, определение которого запрещает значения NULL, и вы спросили, как это сделать. – marekful

ответ

4

Ограничение столбца не является внешним ключом. Вы не можете отключить ограничения столбцов. Если значение не должно быть NULL, оно установлено по этой причине.

Если вы смогли отключить его и снова включить после добавления значения NULL, это будет по-прежнему недействительным для столбца.

Либо измените настройки столбца, чтобы разрешить NULL, либо вместо этого введите пустое значение (UPDATE table SET column = '';).

Держите вашу схему действительной и нормализованной!

+0

Спасибо, Дэн, это нормализуется для всего, кроме этой одной записи. Таблица представляет собой таблицу «users», и эта запись является единственным и единственным пользователем root. Я буду только пустые значения строки там, как вы рекомендуете, но это не так точно, как null. – user1032531

+0

Определите 'exact' ;-) Если вам нужны исключения для определенных строк, схема не будет нормализована. Представьте, что у вас более одного пользователя root. – DanFromGermany

+0

Точное слово было неправильным. NULL менее вводит в заблуждение. Я мог бы и будет включать значение, но этот конкретный пользователь не нуждается в этом. Спасибо за вашу помощь. – user1032531

Смежные вопросы