【问题标题】:On delete Error: SQL Error: ORA-00933: SQL command not properly ended删除错误:SQL 错误:ORA-00933:SQL 命令未正确结束
【发布时间】:2020-05-18 05:57:23
【问题描述】:

我正在尝试使用以下查询从数据库中删除学生记录。但是我遇到了这个错误。

DELETE student, enrolment FROM student INNER JOIN enrolment
WHERE student.stu_nbr=enrolment.stu_nbr and student.stu_nbr = 154;

错误报告 - SQL 错误:ORA-00933:SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束”

【问题讨论】:

标签: sql oracle join sql-delete


【解决方案1】:

尝试删除存在注册的学生记录。

delete from student s
where stu_nbr = 154
  and exists (
    select 1
    from enrollment
    where stu_nbr = s.stu_nbr
  );

如果您有兴趣从学生表和注册表中删除学生记录,请运行 2 个查询:

delete from enrollment where stu_nbr = 154;
delete from student where stu_nbr = 154;

如果您想在删除学生时自动删除注册记录,您可能需要查看触发器。

【讨论】:

  • ORA-01407: 无法将 ("USER"."ENROLMENT"."STU_NBR") 更新为 NULL 我收到此错误,
  • 你在表或外键约束上有触发器吗?
  • @Emma 您在 StackOverflow 上提出了一些问题,但尽管收到了来自社区的回答,但您没有将任何问题标记为已回答。我的建议是返回您已回答的所有问题,并将对您帮助最大的答案标记为已接受。这将结束您的问题。
  • @Emma 你在这个问题上需要任何进一步的帮助吗?如果此答案已解决问题,您可以通过将其标记为已接受来结束您的问题,或者您可以等待其他答案出现,然后选择将其中一个标记为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
  • 2020-02-29
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多