sql - 触发器未触发(编译成功)
问题描述
我有这两张桌子
CREATE TABLE Car_Makers (
ID NUMBER(5),
Maker VARCHAR2(15),
FullName VARCHAR2(25),
Country NUMBER(5),
MODAL_TOTALS INT,
CONSTRAINT car_maker_country_id_fk FOREIGN KEY(Country) REFERENCES
Countries(CountryID),
CONSTRAINT car_maker_id PRIMARY KEY(ID)
);
CREATE TABLE Model_Details (
ModelID NUMBER(5),
Maker NUMBER(5),
Model VARCHAR2(25),
CONSTRAINT model_unique UNIQUE(Model),
CONSTRAINT model_details_id_pk PRIMARY KEY(ModelID),
CONSTRAINT model_maker_fk FOREIGN KEY(Maker) REFERENCES Car_Makers(ID)
);
我想创建一个触发器,该触发器将在插入新行时更新MODEL_TOTALS
IN 。但是我的触发器成功运行但没有触发。我没有收到任何错误,但是当我在相应的值中插入一行时不会更新。任何帮助将不胜感激,这是我的触发器Car_Makers
Model_Details
Model_details
MODEL_TOTAL
CREATE OR REPLACE TRIGGER trg_modeltotals_up
AFTER INSERT ON MODEL_DETAILS
REFERENCING NEW AS NEWROW
FOR EACH ROW
BEGIN
UPDATE CAR_MAKERS SET MODEL_TOTALS = MODEL_TOTALS+1 WHERE
CAR_MAKERS."ID" = :NEWROW.MAKER;
END;
解决方案
可能是null
s 导致了这个问题。coalesce
在更新中添加
UPDATE CAR_MAKERS SET MODAL_TOTALS = COALESCE(MODAL_TOTALS,0) +1 WHERE
CAR_MAKERS."ID" = :NEWROW.MAKER;
推荐阅读
- pdfclown - PDFClown 复制注释然后操作它们
- objective-c - 如何让 Xcode 识别 Objective-C 命令以连接到 Firebase?
- angular - Angular 5 + HttpClient 不会在 GET 上发送标头
- date - 在一天中的不同时间安排多个功能
- powershell - 如何通过 powershell 处理 Active Directory 异常?
- algorithm - 以最类似于基于 PQ 的排序方式进行的算法
- vba - VBA 对于每个 - 循环顺序
- mysql - 如何在 RDS MySql 中克隆和创建新数据库
- java - 您可以在不手动编辑 pom.xml 的情况下设置主清单吗?
- angular - 从 PrimeNG 数据表中获取数据