Heim  >  Artikel  >  Datenbank  >  Können MySQL-Trigger dieselbe Tabelle aktualisieren, aus der sie aufgerufen werden?

Können MySQL-Trigger dieselbe Tabelle aktualisieren, aus der sie aufgerufen werden?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 04:00:02555Durchsuche

 Can MySQL Triggers Update the Same Table They Are Called From?

MySQL-Trigger: Einschränkungen beim Aktualisieren derselben Tabellenzeilen

Frage: Wie legen Sie Werte für eine neue Zeile in einem MySQL-Trigger fest und aktualisieren diese? eine weitere Zeile in derselben Tabelle?

Es wurde versucht, einen Trigger zu erstellen, der beim Einfügen der Zeile die folgenden Vorgänge ausführt:

  1. Bestimmte Werte für die neue Zeile berechnen und festlegen.
  2. Setzen Sie das Enddatum der vorherigen Zeile auf einen Tag vor dem Startdatum der neuen Zeile.

Der Auslöser führte jedoch zu einem Fehler: „Tabellenaufteilung im Speicher kann nicht aktualisiert werden.“ Funktion/Trigger, da sie bereits von der Anweisung verwendet wird, die diese gespeicherte Funktion/Trigger aufgerufen hat. MySQL-Trigger sind in ihrer Fähigkeit eingeschränkt, dieselbe Tabelle zu aktualisieren, von der aus sie aufgerufen wurden. Diese Einschränkung wird eingeführt, um Datenintegritätsprobleme zu verhindern, die durch gleichzeitige Aktualisierungen entstehen könnten.

Der empfohlene Ansatz zum Erreichen der gewünschten Funktionalität besteht darin, eine gespeicherte Prozedur zu erstellen, die sowohl die Einfügungs- als auch die Aktualisierungsvorgänge in einer einzigen Transaktion kapselt. Dadurch wird sichergestellt, dass die Datenbank während des gesamten Prozesses in einem konsistenten Zustand bleibt.

Das obige ist der detaillierte Inhalt vonKönnen MySQL-Trigger dieselbe Tabelle aktualisieren, aus der sie aufgerufen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn