Обновление записи таблицы остановлено ограничением внешнего ключа

У меня проблема с обновлением записей в таблице derby db с внешним ключом. Рассмотрим две таблицы QUESTIONCHOICE и QUESTIONANSWER ниже. Записи в таблице QUESTIONANSWER являются подмножеством QUESTIONCHOICE и имеют ограничение внешнего ключа, чтобы убедиться, что таблица QUESTIONANSWER всегда является подмножеством QUESTIONCHOICE. таблица.

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

обновите "USER"."QUESTIONCHOICE" установите "CHOICE"='GET1', где "QID"=10001 и "CHOICE"='GET';

ОБНОВЛЕНИЕ в таблице QUESTIONCHOICE вызвало нарушение ограничения внешнего ключа QUESTIONANSWER_FK для ключа (10001,GET). Заявление было отменено.

Как мне обновить записи в таблице QUESTIONCHOICE? я могу удалить запись в таблице QUESTIONANSWER, обновить мою запись в таблице QUESTIONCHOICE, а затем вставить запись в QUESTIONANSWER. но это не звучит хорошо для меня.

Также могу ли я создать QUESTIONANSWER как VIEW вместо TABLE. Если да, то как мне сделать подмножество таблицы QUESTIONCHOICE?

пожалуйста, предложите.

Спасибо,

-Вижай Селварадж

----------
CREATE TABLE USER.QUESTIONCHOICE(
QID INT NOT NULL,
Choice VARCHAR(100) NOT NULL,
CONSTRAINT QUESTIONCHOICE_PK PRIMARY KEY (QID, Choice),
CONSTRAINT QUESTIONCHOICE_FK FOREIGN KEY (QID)
    REFERENCES user.questionbank (QuestionID)
);

----------
create table USER.QUESTIONANSWER(
QID INT NOT NULL,
Answer VARCHAR(100) NOT NULL,
CONSTRAINT QUESTIONANSWER_PK PRIMARY KEY (QID, Answer),
CONSTRAINT QUESTIONANSWER_FK FOREIGN KEY (QID, Answer)
    REFERENCES USER.QUESTIONCHOICE (QID, Choice)
);

person Vijay Selvaraj    schedule 11.02.2011    source источник


Ответы (1)


Почему бы вам не добавить дополнительный столбец в таблицу QUESTIONCHOICE, чтобы пометить строку как строку ответа, таким образом, представление также можно создать, применив ограничение к столбцу ответа.

person Vinodharajan    schedule 11.02.2011
comment
Да, даже я понял эту идею. Позвольте мне ввести столбец и упростить дизайн таблицы. Спасибо. - person Vijay Selvaraj; 11.02.2011