每当我尝试运行此触发器时,当我尝试为员工分配工作计划时,以及当我从详细信息表中的主表将工作计划分配给该员工时,它应该为我生成工作计划详细信息时,我都会收到此错误基于工作计划页面中的工作计划 ID 的表格,但我不知道该怎么做,我需要帮助 触发:
CREATE OR REPLACE TRIGGER TRG_INSERT_EMPLOYEE_WORK_SCHEDULE
AFTER INSERT ON EMPLOYEE_WORK_SCHEDULE_testtt
FOR EACH ROW
DECLARE
v_new_id NUMBER;
BEGIN
-- Generate a new unique ID for each detail record,
SELECT NVL(MAX(ID), 0) + 1 INTO v_new_id FROM EMPLOYEE_WORK_SCHEDULE_DETAIL_testtt;
-- Inserting into detail table, modify the columns and values
INSERT INTO EMPLOYEE_WORK_SCHEDULE_DETAIL_testtt (ID, ...other columns...)
VALUES (v_new_id, ...other values...);
-- You can add more logic if needed
END;
/
这是两个表的 DLL
主表:
CREATE TABLE "EMPLOYEE_WORKING_SCHEDULE_testtt"
( "ID" NUMBER,
"EMPLOYEE_ID" NUMBER NOT NULL ENABLE,
"WORK_SCHEDULE_ID" NUMBER NOT NULL ENABLE,
"ASSIGNMENT_DATE" DATE NOT NULL ENABLE,
PRIMARY KEY ("ID")
USING INDEX ENABLE
) ;
ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_testtt" ADD CONSTRAINT "FK_EWS_EMPLOYEE" FOREIGN KEY ("EMPLOYEE_ID")
REFERENCES "EMPLOYEES" ("EMPLOYEE_ID") ENABLE;
ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_testtt" ADD CONSTRAINT "FK_EWS_WORK_SCHEDULE" FOREIGN KEY ("WORK_SCHEDULE_ID")
REFERENCES "WORK_SCHEDULE_MASTER" ("ID") ENABLE;
CREATE OR REPLACE EDITIONABLE TRIGGER "EMPLOYEE_WORKING_SCHEDULE_TESTTT_T"
after
insert or update or delete on "EMPLOYEE_WORKING_SCHEDULE_testtt"
for each row
begin
null;
end;
/
ALTER TRIGGER "EMPLOYEE_WORKING_SCHEDULE_TESTTT_T" ENABLE;
详情表:
CREATE TABLE "EMPLOYEE_WORKING_SCHEDULE_DETAIL_testtt"
( "ID" NUMBER,
"EMPLOYEE_WORKING_SCHEDULE_ID" NUMBER NOT NULL ENABLE,
"DAY" NUMBER NOT NULL ENABLE,
"DAY_MODEL" VARCHAR2(50 CHAR) NOT NULL ENABLE,
"SHIFT_DEFINITION_ID" NUMBER NOT NULL ENABLE,
PRIMARY KEY ("ID")
USING INDEX ENABLE
) ;
ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_DETAIL_testtt" ADD CONSTRAINT "FK_EWSD_EWS" FOREIGN KEY ("EMPLOYEE_WORKING_SCHEDULE_ID")
REFERENCES "EMPLOYEE_WORKING_SCHEDULE_testtt" ("ID") ENABLE;
ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_DETAIL_testtt" ADD CONSTRAINT "FK_EWSD_SHIFT_DEFINITION" FOREIGN KEY ("SHIFT_DEFINITION_ID")
REFERENCES "SHIFT_DEFINITIONS" ("ID") ENABLE;
尝试运行但行不通
当您决定将表和列名称括在双引号中时,现在您必须这样做每次引用这些名称时,匹配字母大小写。
在触发器中,您没有这样做,所以它失败了,因为具有该名称的表实际上不存在 - 在数据字典中,其(表的)名称以混合大小写形式存储。默认情况下,如果不使用双引号,所有标识符都以大写形式存储,但 Oracle 允许您以任何您想要的方式引用它们。我建议你