Die Datenbanktrigger werden angelegt, wenn
- Die Annotationen für CDS vorhanden sind
- Eine Datasource existiert
- Ein Delta-DTP das erste Mal ausgeführt wird.
Den Datenbanktrigger kann man in der HANA Datenbankkatalog anschauen.
Master Logging Tabelle
Die Änderungen werden vom Trigger in die sogenannte Master Logging (ML) Tabelle geschrieben. Ihr Name beginnt mit /1DH/MH
, also z.B. /1DH/ML000000001
. Für jede Datenbanktabelle, die im CDC verwendet wird, existiert eine ML-Tabelle
Die ML-Tabelle hat einen technischen Schlüssel (Sequence)
CREATE TRIGGER "SAPHANADB"."/1DH/000000001UPD1"
AFTER UPDATE OF "CLIENT", "TASK_KEY"
ON "SAPHANADB"."ZBC_TASKS"
REFERENCING OLD ROW OLD, NEW ROW NEW
FOR EACH ROW
PRECEDES "SAPHANADB"."/1DH/000000001UPD2"
BEGIN
INSERT INTO "/1DH/ML000000001" (
"/1DH/SEQUENCE",
"/1DH/TIMESTAMP",
"CLIENT",
"TASK_KEY",
"/1DH/OPERATION",
"/1DH/USER"
) VALUES (
"SEQ_/1DH/ML000000001".NEXTVAL,
TO_CHAR(CURRENT_UTCTIMESTAMP, 'yyyymmddhh24missFF7'),
:NEW."CLIENT",
:NEW."TASK_KEY",
'I',
SUBSTRING(SESSION_CONTEXT('APPLICATIONUSER'), 1, 12)
);
END;