У меня проблема с обновлением записей в таблице 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)
);