DEFERRABLE-Primärschlüssel-Prüfungsdurchsetzung
Das Verhalten einer DEFERRABLE-Primärschlüssel- oder eindeutigen Schlüsseleinschränkung hängt von ihrer Spezifikation ab. PostgreSQL berücksichtigt die folgenden Durchsetzungsszenarien:
1. DEFERRABLE INITIALLY IMMEDIATE
Einschränkungen mit DEFERRABLE INITIALLY IMMEDIATE werden nach jeder Anweisung erzwungen, nicht nach jeder Zeilenaktualisierung, wie Sie vielleicht erwarten würden. Das bedeutet:
2. DEFERRABLE INITIALLY DEFERRED
Einschränkungen mit DEFERRABLE INITIALLY DEFERRED werden am Ende der Transaktion erzwungen, was mehrere Aktualisierungen innerhalb derselben Transaktion ermöglicht. Dies ist nützlich, um Einschränkungen über mehrere Anweisungen hinweg durchzusetzen.
3. Nicht aufschiebbare Einschränkungen
Als NICHT AUFSCHIEBBAR deklarierte Einschränkungen werden nach jeder Zeilenaktualisierung überprüft, wodurch sie strenger werden. Dies kann zu Einschränkungsverletzungen führen, selbst wenn die Einschränkung am Ende des Befehls erfüllt wäre.
Historische Perspektive
In früheren Versionen von PostgreSQL nicht aufschiebbare Einschränkungen wurden auch nach jeder Zeilenaktualisierung überprüft. Dieses Verhalten wurde als Fehler betrachtet und anschließend in PostgreSQL 9.1 behoben.
Praktische Auswirkungen
Das obige ist der detaillierte Inhalt vonWie funktioniert die Durchsetzung der DEFERRABLE-Primärschlüsselprüfung in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!