2016-04-27 2 views
0

私のデータベースにリンクエンティティがあります。コードを削除する

私はOracle 10gを使用してフォームを作成しています。私は、リンクエンティティは三つのフィールド

  • 学生証(PK)年には、学生がクラスを取るクラスIDです
  • C_ID(PK)
  • SC_YEARあるSTUD_IDを持つフォームを作成しました

私は特定の学生にクラスを割り当てるためのフォームを実装しました。 更新、挿入、検索関数はうまくいきますが、削除しようとすると、このクラスを取るすべての生徒のC_IDのインスタンスがすべて削除されます。

特定の生徒に割り当てられたクラスの特定のインスタンスを削除する必要があります。

私はこれに新しいので、私はそれを把握しようとしています。どんな助けでも大歓迎です。あなたのコードでは、この私のコード

PROCEDURE DISPLAY_DELETE_ALERT IS NUM NUMBER; 
BEGIN 

    NUM := SHOW_ALERT('DELETE_ALERT'); 

    IF NUM = ALERT_BUTTON1 THEN 

    DELETE FROM STUDENT_CLASS 
    WHERE :STUDENT_CLASS.C_ID= STUDENT_CLASS.C_ID AND 
    STUDENT_CLASS.STUD_ID= STUDENT_CLASS.STUD_ID; 
    COMMIT; 

    NUM := SHOW_ALERT('CONFIRM_ALERT'); 


    END IF; 

    EXECUTE_QUERY; 

END; 

答えて

0

ルック:

STUDENT_CLASS.STUD_ID= STUDENT_CLASS.C_ID 

STUD_ID = C_IDはここでは述べている - それはあなたが何をしたいと思いませんか?多分あなたはこれが欲しいですか?

:STUDENT_CLASS.STUD_ID= STUDENT_CLASS.STUD_ID 

また、あなたの変数にあなたのテーブルと同じ名前を付けるために送信しますか?これはあなたにもっと混乱させるかもしれません。

+0

申し訳ありませんが、私は絶望的なコードを手にしていました。それは私の元のコードだったので、私の質問のコードを編集しましたが、まだC_IDのすべてのインスタンスを削除します –

+0

実際の質問を反映するコードで質問を投稿してください – Hogan

+0

私はそれを考え出しました。 2行目。あなたの答えは私がそれを理解するのを助けました。ありがとうございました –