Ошибка вставки новых строк (проблема внешнего ключа) в SQL - PullRequest
1 голос
/ 01 декабря 2011

Я пытаюсь отладить некоторый классический ASP-код, и приложение продолжает ломать оператор вставки.Бэкэнд в SQL

. Выражение выглядит примерно так:

insert into tableX (id, fo, ao) values (12, '', 'ab')

в tableX и fo, и ao установлены для разрешения нулевых значений.

fo это внешний ключ, указывающий на foTable (посмотрите таблицу)

Я полагаю, ему не нравятся одинарные кавычки?Как еще я могу это сделать в классическом asp?

Я получаю ошибку:

Оператор INSERT конфликтует с ограничением FOREIGN KEY "FK_tableX_FO".Конфликт произошел в базе данных «tableX», таблице «dbo.FIELD_OFFICE», столбце «FO».

Я также хочу добавить, что это процесс миграции из Oracle.Кто-нибудь знает, воспринимает ли Oracle '' как нули, вот почему я сейчас получаю сообщение об ошибке в SQL?

Ответы [ 3 ]

4 голосов
/ 01 декабря 2011

Пустая строка не является нулевым значением.Вам нужно назвать это так

insert into tableX (id, fo, ao) values (12, null, 'ab')

Альтернативно

insert into tableX (id, ao) values (12, 'ab')
2 голосов
/ 01 декабря 2011

Любое из этих утверждений будет работать.

insert into tableX (id, ao) values (12, 'ab')

или

insert into tableX (id, fo, ao) values (12, NULL, 'ab')
0 голосов
/ 01 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...