【发布时间】:2021-11-11 07:21:28
【问题描述】:
如果主表的 ID 已经存在,我想删除 Oracle 数据库中的几行: 在根据其他表中的 ID 删除行之前,我尝试先进行 SELECT 以检查主表中是否存在该 ID:
DECLARE
PROJECT_ID PLS_INTEGER;
PROJECT_ID_TO_DELETE PLS_INTEGER;
BEGIN
PROJECT_ID := PROJECTS_SEQ.nextval;
SELECT PROJ_ID INTO PROJECT_ID_TO_DELETE FROM PROJECTS WHERE PROJ_NAME_EN LIKE 'FD Project - CSB - A.1 - CFT - Final Reject of an Increase Movement - Seb';
IF PROJECT_ID_TO_DELETE IS NULL THEN
DELETE FROM PROJECTS_ORG WHERE PROJ_ID = PROJECT_ID_TO_DELETE;
DELETE FROM PROJECTS WHERE PROJ_ID = PROJECT_ID_TO_DELETE;
DELETE FROM MVT_ONGOING WHERE MVT_ONGOING_PROJ_ID = PROJECT_ID_TO_DELETE;
DELETE FROM MVT_HISTORY WHERE MVT_HISTORY_PROJ_ID = PROJECT_ID_TO_DELETE;
END IF;
Insert into PROJECTS (PROJ_ID, ...) values (PROJECT_ID, ...);
Insert into PROJECTS_ORG (PROJ_ID, ...) values (PROJECT_ID, ...);
Insert into MVT_ONGOING (MVT_ONGOING_PROJ_ID, ...);
Insert into MVT_HISTORY (PROJ_ID, ...) values (PROJECT_ID, ...);
END;
我收到“未找到数据”错误
您能帮我找到最佳优化解决方案吗?
谢谢
【问题讨论】:
标签: oracle plsql row delete-row