de.svws_nrw.db.schema.tabellen.Tabelle_DavSyncTokenLehrer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of svws-db Show documentation
Show all versions of svws-db Show documentation
Diese Bibliothek regelt den Zugriff auf Datenbanken für die Schulverwaltungssoftware in NRW
The newest version!
package de.svws_nrw.db.schema.tabellen;
import de.svws_nrw.core.adt.Pair;
import de.svws_nrw.db.DBDriver;
import de.svws_nrw.db.schema.Schema;
import de.svws_nrw.db.schema.SchemaDatentypen;
import de.svws_nrw.db.schema.SchemaFremdschluesselAktionen;
import de.svws_nrw.db.schema.SchemaRevisionen;
import de.svws_nrw.db.schema.SchemaTabelle;
import de.svws_nrw.db.schema.SchemaTabelleFremdschluessel;
import de.svws_nrw.db.schema.SchemaTabelleSpalte;
import de.svws_nrw.db.schema.SchemaTabelleTrigger;
/**
* Diese Klasse beinhaltet die Schema-Definition für die Tabelle DavSyncTokenLehrer.
*/
public class Tabelle_DavSyncTokenLehrer extends SchemaTabelle {
/** Die Definition der Tabellenspalte ID */
public SchemaTabelleSpalte col_ID = add("ID", SchemaDatentypen.BIGINT, true)
.setNotNull()
.setJavaComment("ID des Lehrers");
/** Die Definition der Tabellenspalte SyncToken */
public SchemaTabelleSpalte col_SyncToken = add("SyncToken", SchemaDatentypen.DATETIME, false)
.setDatenlaenge(3)
.setNotNull()
.setJavaComment("Der Zeitstempel der letzten Änderung an für einen Card-DAV-Eintrag relevanten Lehrerdaten.");
/** Die Definition des Fremdschlüssels DavSyncTokenLehrer_FK */
public SchemaTabelleFremdschluessel fk_DavSyncTokenLehrer_FK = addForeignKey(
"DavSyncTokenLehrer_FK",
/* OnUpdate: */ SchemaFremdschluesselAktionen.CASCADE,
/* OnDelete: */ SchemaFremdschluesselAktionen.CASCADE,
new Pair<>(col_ID, Schema.tab_K_Lehrer.col_ID));
/** Trigger t_UPDATE_DavSyncTokenLehrer_Lehrer */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_Lehrer = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_Lehrer",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON K_Lehrer FOR EACH ROW
BEGIN
DECLARE changed BOOLEAN;
DECLARE token DATETIME;
SET changed := 0;
IF OLD.Nachname <> NEW.Nachname OR OLD.Vorname <> NEW.Vorname OR OLD.Strassenname <> NEW.Strassenname
OR OLD.HausNr <> NEW.HausNr OR OLD.HausNrZusatz <> NEW.HausNrZusatz
OR OLD.Ort_ID <> NEW.Ort_ID OR OLD.Ortsteil_ID <> NEW.Ortsteil_ID
OR OLD.Sichtbar <> NEW.Sichtbar
OR OLD.Tel <> NEW.Tel OR OLD.Handy <> NEW.Handy
OR OLD.Email <> NEW.Email OR OLD.EmailDienstlich <> NEW.EmailDienstlich
OR OLD.Geschlecht <> NEW.Geschlecht THEN
SET changed := 1;
END IF;
IF changed = TRUE THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.ID;
END IF;
END IF;
END
""",
Schema.tab_K_Lehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_UPDATE_DavSyncTokenLehrer_K_Ort */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_K_Ort = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_K_Ort",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON K_Ort FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (SELECT ID AS Lehrer_ID FROM K_Lehrer WHERE Ort_ID = NEW.ID OR Ort_ID = OLD.ID) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_K_Ort, Schema.tab_K_Lehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_INSERT_DavSyncTokenLehrer_K_Ort */
public SchemaTabelleTrigger trigger_MariaDB_INSERT_DavSyncTokenLehrer_K_Ort = addTrigger(
"t_INSERT_DavSyncTokenLehrer_K_Ort",
DBDriver.MARIA_DB,
"""
AFTER INSERT ON K_Ort FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (SELECT ID AS Lehrer_ID FROM K_Lehrer WHERE Ort_ID = NEW.ID) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_K_Ort, Schema.tab_K_Lehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_DELETE_DavSyncTokenLehrer_K_Ort */
public SchemaTabelleTrigger trigger_MariaDB_DELETE_DavSyncTokenLehrer_K_Ort = addTrigger(
"t_DELETE_DavSyncTokenLehrer_K_Ort",
DBDriver.MARIA_DB,
"""
AFTER DELETE ON K_Ort FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (SELECT ID AS Lehrer_ID FROM K_Lehrer WHERE Ort_ID = OLD.ID) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_K_Ort, Schema.tab_K_Lehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_UPDATE_DavSyncTokenLehrer_LehrerLehramtLehrbef */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_LehrerLehramtLehrbef = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_LehrerLehramtLehrbef",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON LehrerLehramtLehrbef FOR EACH ROW
BEGIN
DECLARE changed BOOLEAN;
DECLARE token DATETIME;
SET changed := 0;
IF OLD.Lehrer_ID <> NEW.Lehrer_ID THEN
SET changed := 1;
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
END IF;
IF OLD.LehrbefKrz <> NEW.LehrbefKrz THEN
SET changed := 1;
END IF;
IF changed = TRUE THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
END IF;
END
""",
Schema.tab_LehrerLehramtLehrbef, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_INSERT_DavSyncTokenLehrer_LehrerLehramtLehrbef */
public SchemaTabelleTrigger trigger_MariaDB_INSERT_DavSyncTokenLehrer_LehrerLehramtLehrbef = addTrigger(
"t_INSERT_DavSyncTokenLehrer_LehrerLehramtLehrbef",
DBDriver.MARIA_DB,
"""
AFTER INSERT ON LehrerLehramtLehrbef FOR EACH ROW
BEGIN
DECLARE token DATETIME;
SET token := (SELECT DavSyncTokenLehrer.SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
END
""",
Schema.tab_LehrerLehramtLehrbef, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_DELETE_DavSyncTokenLehrer_LehrerLehramtLehrbef */
public SchemaTabelleTrigger trigger_MariaDB_DELETE_DavSyncTokenLehrer_LehrerLehramtLehrbef = addTrigger(
"t_DELETE_DavSyncTokenLehrer_LehrerLehramtLehrbef",
DBDriver.MARIA_DB,
"""
AFTER DELETE ON LehrerLehramtLehrbef FOR EACH ROW
BEGIN
DECLARE token DATETIME;
SET token := (SELECT DavSyncTokenLehrer.SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
END
""",
Schema.tab_LehrerLehramtLehrbef, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_UPDATE_DavSyncTokenLehrer_KlassenLehrer */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_KlassenLehrer = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_KlassenLehrer",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON KlassenLehrer FOR EACH ROW
BEGIN
DECLARE token DATETIME;
IF OLD.Lehrer_ID <> NEW.Lehrer_ID THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
END IF;
IF OLD.Klassen_ID <> NEW.Klassen_ID OR OLD.Lehrer_ID <> NEW.Lehrer_ID THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
END IF;
END
""",
Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_INSERT_DavSyncTokenLehrer_KlassenLehrer */
public SchemaTabelleTrigger trigger_MariaDB_INSERT_DavSyncTokenLehrer_KlassenLehrer = addTrigger(
"t_INSERT_DavSyncTokenLehrer_KlassenLehrer",
DBDriver.MARIA_DB,
"""
AFTER INSERT ON KlassenLehrer FOR EACH ROW
BEGIN
DECLARE token DATETIME;
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
END
""",
Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_DELETE_DavSyncTokenLehrer_KlassenLehrer */
public SchemaTabelleTrigger trigger_MariaDB_DELETE_DavSyncTokenLehrer_KlassenLehrer = addTrigger(
"t_DELETE_DavSyncTokenLehrer_KlassenLehrer",
DBDriver.MARIA_DB,
"""
AFTER DELETE ON KlassenLehrer FOR EACH ROW
BEGIN
DECLARE token DATETIME;
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
END
""",
Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_UPDATE_DavSyncTokenLehrer_Klassen */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_Klassen = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_Klassen",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON Klassen FOR EACH ROW
BEGIN
DECLARE changed BOOLEAN;
DECLARE token DATETIME;
SET changed := 0;
IF OLD.ID <> NEW.ID OR OLD.Klasse <> NEW.Klasse OR OLD.ASDKlasse <> NEW.ASDKlasse
OR OLD.Schuljahresabschnitts_ID <> NEW.Schuljahresabschnitts_ID
OR OLD.Jahrgang_ID <> NEW.Jahrgang_ID THEN
SET changed := 1;
END IF;
IF changed = TRUE THEN
FOR sid IN (SELECT DISTINCT Lehrer_ID FROM KlassenLehrer WHERE Klassen_ID = NEW.ID OR Klassen_ID = OLD.ID) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END IF;
END
""",
Schema.tab_Klassen, Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_INSERT_DavSyncTokenLehrer_Klassen */
public SchemaTabelleTrigger trigger_MariaDB_INSERT_DavSyncTokenLehrer_Klassen = addTrigger(
"t_INSERT_DavSyncTokenLehrer_Klassen",
DBDriver.MARIA_DB,
"""
AFTER INSERT ON Klassen FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (SELECT DISTINCT Lehrer_ID FROM KlassenLehrer WHERE Klassen_ID = NEW.ID) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_Klassen, Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_DELETE_DavSyncTokenLehrer_Klassen */
public SchemaTabelleTrigger trigger_MariaDB_DELETE_DavSyncTokenLehrer_Klassen = addTrigger(
"t_DELETE_DavSyncTokenLehrer_Klassen",
DBDriver.MARIA_DB,
"""
AFTER DELETE ON Klassen FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (SELECT DISTINCT Lehrer_ID FROM KlassenLehrer WHERE Klassen_ID = OLD.ID) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_Klassen, Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_UPDATE_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON EigeneSchule_Jahrgaenge FOR EACH ROW
BEGIN
DECLARE changed BOOLEAN;
DECLARE token DATETIME;
SET changed := 0;
IF OLD.ID <> NEW.ID OR OLD.InternKrz <> NEW.InternKrz THEN
SET changed := 1;
END IF;
IF changed = TRUE THEN
FOR sid IN (
SELECT DISTINCT Lehrer_ID FROM (
SELECT DISTINCT Lehrer_ID FROM KlassenLehrer WHERE Klassen_ID IN (SELECT ID FROM Klassen WHERE Jahrgang_ID = OLD.ID OR Jahrgang_ID = NEW.ID)
UNION
SELECT DISTINCT Lehrer_ID FROM Kurse WHERE Jahrgang_ID = OLD.ID OR Jahrgang_ID = NEW.ID
) a
) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END IF;
END
""",
Schema.tab_EigeneSchule_Jahrgaenge, Schema.tab_Kurse, Schema.tab_Klassen,
Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_INSERT_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge */
public SchemaTabelleTrigger trigger_MariaDB_INSERT_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge = addTrigger(
"t_INSERT_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge",
DBDriver.MARIA_DB,
"""
AFTER INSERT ON EigeneSchule_Jahrgaenge FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (
SELECT DISTINCT Lehrer_ID FROM (
SELECT DISTINCT Lehrer_ID FROM KlassenLehrer WHERE Klassen_ID IN (SELECT ID FROM Klassen WHERE Jahrgang_ID = NEW.ID)
UNION
SELECT DISTINCT Lehrer_ID FROM Kurse WHERE Jahrgang_ID = NEW.ID
) a
) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_EigeneSchule_Jahrgaenge, Schema.tab_Kurse, Schema.tab_Klassen,
Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_DELETE_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge */
public SchemaTabelleTrigger trigger_MariaDB_DELETE_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge = addTrigger(
"t_DELETE_DavSyncTokenLehrer_EigeneSchule_Jahrgaenge",
DBDriver.MARIA_DB,
"""
AFTER DELETE ON EigeneSchule_Jahrgaenge FOR EACH ROW
BEGIN
DECLARE token DATETIME;
FOR sid IN (
SELECT DISTINCT Lehrer_ID FROM KlassenLehrer WHERE Klassen_ID IN (SELECT ID FROM Klassen WHERE Jahrgang_ID = OLD.ID)
UNION
SELECT DISTINCT Lehrer_ID FROM Kurse WHERE Jahrgang_ID = OLD.ID
) DO
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = sid.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (sid.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = sid.Lehrer_ID;
END IF;
END FOR;
END
""",
Schema.tab_EigeneSchule_Jahrgaenge, Schema.tab_Kurse, Schema.tab_Klassen,
Schema.tab_KlassenLehrer, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_UPDATE_DavSyncTokenLehrer_Kurse */
public SchemaTabelleTrigger trigger_MariaDB_UPDATE_DavSyncTokenLehrer_Kurse = addTrigger(
"t_UPDATE_DavSyncTokenLehrer_Kurse",
DBDriver.MARIA_DB,
"""
AFTER UPDATE ON Kurse FOR EACH ROW
BEGIN
DECLARE changed BOOLEAN;
DECLARE token DATETIME;
IF NEW.Lehrer_ID IS NOT NULL AND OLD.Lehrer_ID IS NULL THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
ELSE
IF NEW.Lehrer_ID IS NULL AND OLD.Lehrer_ID IS NOT NULL THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
ELSE
IF OLD.Lehrer_ID <> NEW.Lehrer_ID THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
END IF;
IF OLD.ID <> NEW.ID OR OLD.Lehrer_ID <> NEW.Lehrer_ID
OR OLD.KurzBez <> NEW.KurzBez OR OLD.Jahrgang_ID <> NEW.Jahrgang_ID
OR OLD.ASDJahrgang <> NEW.ASDJahrgang THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
END IF;
END IF;
END IF;
END
""",
Schema.tab_Kurse, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_INSERT_DavSyncTokenLehrer_Kurse */
public SchemaTabelleTrigger trigger_MariaDB_INSERT_DavSyncTokenLehrer_Kurse = addTrigger(
"t_INSERT_DavSyncTokenLehrer_Kurse",
DBDriver.MARIA_DB,
"""
AFTER INSERT ON Kurse FOR EACH ROW
BEGIN
DECLARE token DATETIME;
IF NEW.Lehrer_ID IS NOT NULL THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = NEW.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (NEW.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = NEW.Lehrer_ID;
END IF;
END IF;
END
""",
Schema.tab_Kurse, Schema.tab_DavSyncTokenLehrer);
/** Trigger t_DELETE_DavSyncTokenLehrer_Kurse */
public SchemaTabelleTrigger trigger_MariaDB_DELETE_DavSyncTokenLehrer_Kurse = addTrigger(
"t_DELETE_DavSyncTokenLehrer_Kurse",
DBDriver.MARIA_DB,
"""
AFTER DELETE ON Kurse FOR EACH ROW
BEGIN
DECLARE token DATETIME;
IF OLD.Lehrer_ID IS NOT NULL THEN
SET token := (SELECT SyncToken FROM DavSyncTokenLehrer WHERE ID = OLD.Lehrer_ID);
IF token IS NULL THEN
INSERT INTO DavSyncTokenLehrer(ID, SyncToken) VALUES (OLD.Lehrer_ID, CURTIME(3));
ELSE
UPDATE DavSyncTokenLehrer SET SyncToken = CURTIME(3) WHERE ID = OLD.Lehrer_ID;
END IF;
END IF;
END
""",
Schema.tab_Kurse, Schema.tab_DavSyncTokenLehrer);
// TODO Trigger für SQLite
/**
* Erstellt die Schema-Defintion für die Tabelle DavSyncTokenLehrer.
*/
public Tabelle_DavSyncTokenLehrer() {
super("DavSyncTokenLehrer", SchemaRevisionen.REV_8);
setMigrate(false);
setImportExport(true);
setPKAutoIncrement();
setJavaSubPackage("svws.dav");
setJavaClassName("DTODavSyncTokenLehrer");
setJavaComment("Diese Tabelle beinhaltet die Zeitstempel, wann an den für Card-DAV relevanten Datenbanktabellen "
+ "für einen Lehrer Änderungen vorgenommen wurden. "
+ "Diese Zeitstempel dienen als Sync-Token für das Protokoll.");
}
}