我有這樣如何更新記錄的PK與FK點
stu_choose_lesson ----> student <-----leave_apply
/|\
|
|
|-------message
在Oracle數據庫中。然後,我有一門功課這讓我更新學生的記錄,並根據要求我無法使用'更新'。
我在sqlplus中運行這些命令。
BEGIN
UPDATE student SET studentNum=200204 WHERE studentNum=200202;
UPDATE stu_choose_lesson SET studentNum=200204 WHERE studentNum=200202;
UPDATE leave_apply SET studentNum=200204 WHERE studentNum=200202;
UPDATE message SET studentNum=200204 WHERE studentNum=200202;
END;
/
然後我得到這個錯誤。
ORA-02292: integrity constraint (SYSTEM.SYS_C007646) violated - child record found
ORA-06512: at line 1
我谷歌它並做到這一點。
SET CONSTRAINTS SYS_C007647 DEFERRED;
但我得到這個錯誤。
ORA-02447: cannot defer a constraint that is not deferrable
我知道我做了一些錯誤的事情,但我不知道該怎麼做,以及如何谷歌它。
謝謝。
您可以使用CTE並在一條語句中進行更新 –
@AluanHaddad作業要求是「使用事務進行更新:將studentNum從'200202'更新爲'200204',並同時更新所有FK不要在更新中使用)「。所以,我不知道CTE是否達到要求。 – fuxiuyin