Die folgenden Beobachtungen ist auf einer großen sqlite3-Datenbank.Auslöser mit keinem Namen auf sqlite_trace Callback-Funktion
Setup: Ich habe eine Sicht, die einen Trigger für Udpate eines Feldes hat. Dieser Auslöser dieser Ansicht enthält mehrere Aktualisierungsanweisungen für verschiedene zugrunde liegende Tabellen. Diese Tabellen haben auch Trigger für die Aktualisierung der entsprechenden Felder.
Es gibt auch einen registrierten Rückruf mit sqlite_trace-Methode auf unseren Produktionscode. Diese Methode druckt nur die Aktivität in dieser gegebenen Datenbank. Beobachtungen
:
- Wenn diese Ansicht für dieses Feld ein aktualisiert wird, aktualisiert er das Feld der zugrundeliegenden Tabellen.
- Aktualisierung des Feldes auf zugrunde liegenden Tabellen lösen ihre jeweiligen Trigger aus.
- Die registrierte Callback-Methode wird aufgerufen, die ausgibt, dass TRIGGER in der Datenbank mit dem Triggernamen aufgerufen wird.
Allerdings gibt es einige Trigger ohne Namen. Oder die Callback-Methode druckt nur TRIGGER ohne Namen. Zum Beispiel:
- Update-Ansicht V1
- TRIGGER T1
- TRIGGER T2
- TRIGGER
- TRIGGER T3
- TRIGGER
- TRIGGER T4
Meine Frage ist: Was sind diese un-named Auslöser? Wann werden sie genannt? Ist dies, weil einige Felder UPDATE RESTRICT/DELETE RESTRICT/CASCADE auf den Tabellen haben? Ich konnte keine Informationen von diesen Auslösern erhalten. Ich versuche nur, das Geheimnis dieser unbenannten Auslöser zu lösen.
Niemand hier weiß, welche Trigger Sie definiert haben. –