2012-04-29 3 views
2

У меня есть FK в моей таблице, которая выглядит следующим образом:INSERT заявление противоречит COLUMN FOREIGN KEY

FK

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

Но когда я пытаюсь вставить NULL, я получаю следующее сообщение об ошибке:

The INSERT statement conflicted with the FOREIGN KEY constraint "users_fk". The conflict occurred in database "mydatabase", table "dbo.country", column 'country_id'.

+0

вы можете сценарий таблицы и разместить его? – Chopin

+0

Должен ли я вставлять здесь CREATE SCRIPT? Это поможет? @Chopin Какую таблицу вы хотите видеть? пользователей или страны? –

+0

@marc_s в моем запросе на ввод, я не упомянул все поля, кроме поля country_id. Это означает, что он вставляет NULL в это поле, не так ли? –

ответ

4

Вы абсолютно правы - вы должны быть в состоянии вставить NULL в эту колонку.

Вы 500% уверены, что что вы? Сообщение об ошибке говорит что-то еще - оно выглядит так, как будто вы вставляете недопустимое значение.

Может быть, у вас есть

(а) еще одна строка в скрипте, который вставляет дополнительные значения (недопустимые)?

Или

(б) вы посчастливилось иметь триггер на этой таблице, что делает что-то недопустимое?

Update: (основано на ваш комментарий)
Если вы не указания столбца в INSERT заявление - тогда, возможно, неверный значение по умолчанию определяется на этой колонке? Что-то вроде дефолта 0 или что-то в этом роде.

Если у вас есть значение по умолчанию - это значение по умолчанию будет вставлена ​​(а не NULL, как вы, кажется, ожидать)

+0

Спасибо. Мне пришлось удалить значение по умолчанию, чтобы исправить его. –

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