вот на паре сказали, что в некоторых бд при insert из-за того что можно указать имена столбцов произвольном порядке, то проверка ограничения pk на уникальность может произойти после начала процесса добавления строки в таблицу и в том случае, если условие уникальности нарушается, вставка будет прекращена и в результате будет добавлена строка частично сожержащая добавляемые данные заполнив NULL поле с pk и следующие за ним
> Может ли столбец с ограничением pk иметь значения NULL? По стандарту — нет, насколько я помню. > Мне вот на паре сказали, что в некоторых бд Это, я извиняюсь, бред (для всех известных мне СУБД). Может быть, где-то кто-то и написал что-то настолько кривое... kill it with fire! ;)
Может ли столбец с ограничением pk иметь значения NULL? НЕТ. то проверка ограничения pk на уникальность может произойти после начала процесса добавления строки в таблицу Да, проверка может происходить в любое время. Но не изза вышеуказанной причины (что вообще-то бредятина полная) и в том случае, если условие уникальности нарушается, вставка будет прекращена и в результате будет добавлена строка частично сожержащая добавляемые данные заполнив NULL поле с pk и следующие за ним Нет, если условие уникальности нарушается, то ВСЕ вставляемые данным оператором строки НЕ ВСТАВЯТСЯ а оператор откатится (в том числе откатятся действия, выполненные триггерами, если они имели место). В PK NULL не может попасть никогда и ни при каких условиях, исключае физическое разрушение базы данных.
Обсуждают сегодня