Das Halloween-Problem bezeichnet ein Phänomen, das bei einem Datenbankzugriff auftreten kann, bei dem eine Aktualisierung durch eine angeknüpfte Bedingung von dem, was es ändert, abhängt. Entdeckt wurde es von Datenbankentwicklern bei IBM in den 1970er-Jahren. Der Name leitet sich vom Tag der Entdeckung her, dem 31. Oktober, an dem das Fest Halloween gefeiert wird.
Ein Halloween-Problem tritt beispielsweise bei den folgenden Anwendungen auf:
Der SQL-Standard sieht vor, dass vor der Anwendung von Triggern alle Datensätze in eine temporäre Tabelle kopiert werden müssen. Änderungen wirken sich dann nicht mehr auf Trigger aus. Um ein Halloween-Problem bei anderen Aufgabenstellungen zu vermeiden, können solche temporäre Tabellen manuell für die Laufzeit einer Datenbankabfrage angelegt werden. Das bedeutet, dass beispielsweise eine Gehaltserhöhung für alle Mitarbeiter mit einer Bezahlung unterhalb eines Mindestgehalts so durchgeführt werden kann, dass in einem ersten Arbeitsschritt alle Mitarbeiter mit entsprechend geringem Gehalt ermittelt und in einer temporären Tabelle abgelegt werden. Anschließend wird allen Mitarbeitern, die in der temporären Tabelle enthalten sind, einmalig das Gehalt erhöht.
Ein möglicher Grund für das Auftreten eines Halloween-Problems ist, dass der Speicherort einer Zeile durch eine Aktualisierung geändert wird. So kann beispielsweise eine Aktualisierung eine Verlegung der Daten einer Zeile ans Ende oder an eine andere freie Stelle einer Datenbank erfordern. Geht das Datenbanksystem bei der Abarbeitung des Update-Statements dann einfach alle Datensätze der Reihe nach durch, kann es geschehen, dass diese verschobenen Datensätze ein weiteres Mal bearbeitet werden.