sql >> Databáze >  >> RDS >> Oracle

Vytvoření Triggeru, který běží na dvou stolech

To fungovalo perfektně.

CREATE OR REPLACE TRIGGER checkDuration
  BEFORE INSERT OR UPDATE on offering
  FOR EACH ROW
DECLARE
  isFound NUMBER;
BEGIN
  SELECT 1 INTO isFound FROM DUAL WHERE EXISTS (
    SELECT * FROM Course c
    WHERE c.courseId = :new.courseId AND c.duration = 5);
  IF EXTRACT(MONTH FROM :new.startDate) = 12 
    THEN RAISE_APPLICATION_ERROR(-20001, 'Courses of five days duration cannot be run in December');
  END IF;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    NULL;
END;


  1. Anonymizace nepřímých identifikátorů pro snížení rizika Re-ID

  2. Jak zrychlit select count(*) se skupinou podle a kde?

  3. Tortoise ORM pro Python nevrací vztahy entit (Pyndantic, FastAPI)

  4. Pomalé spouštění SQL Reporting Services 2008 v nativním režimu