删除代码删除数据库中一个主键的所有实例而不是表单中的一个记录

时间:2016-04-27 04:05:39

标签: sql plsql oracle10g

我的数据库中有一个链接实体。

我使用Oracle 10g创建表单。我创建了一个表单,其中链接实体有三个字段

  • STUD_ID,即学生ID(PK)
  • C_ID,即类ID(PK)
  • 学生上课的年份SC_YEAR

我已经实施了一个表格来为特定学生分配课程。该 更新,插入和搜索功能工作正常,但是当我尝试删除时,它会删除每个接受此类的学生的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;

1 个答案:

答案 0 :(得分:0)

看看你的代码:

STUDENT_CLASS.STUD_ID= STUDENT_CLASS.C_ID

这说STUD_ID = C_ID - 不认为这是你想要的?也许你想要这个?

:STUDENT_CLASS.STUD_ID= STUDENT_CLASS.STUD_ID

此外,它是否使发送命名您的变量与您的表相同。这可能会让你更加困惑。