にFKポイントで、私はその後、このどの
stu_choose_lesson ----> student <-----leave_apply
/|\
|
|
|-------message
などのOracleでデータベースを持っているレコードのPKを更新するために、私は、要件に基づいて、私は学生のレコードを更新するために聞かせて宿題を持っており、私は '更新'を使用することはできません。
これらのコマンドは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
私はこれをgoogleで行います。
SET CONSTRAINTS SYS_C007647 DEFERRED;
ただし、このエラーが発生します。
ORA-02447: cannot defer a constraint that is not deferrable
私はいくつかの間違ったことをしていることは知っていますが、どうやってやるのかわからないのです。
ありがとうございました。
あなたはCTEを使用して1つのステートメントでそれを更新することができます –
@AluanHaddad宿題の要件は「follow updateを実行するために:studentNumを '200202'から '200204'に更新し、アップデート時には使用しないでください)。だから、CTEが要件を満たしているかどうかわかりません。 – fuxiuyin