Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenbanken erstellen » Datenintegrität gewährleisten » Entitäts- und referenzielle Integrität erzwingen

 

Aktionen zur referenziellen Integrität

Im einfachsten Fall wird die referenzielle Integrität beim Aktualisieren oder Löschen eines referenzierten Primärschlüssels dadurch bewahrt, dass Aktualisieren oder Löschen nicht erlaubt werden. Oft ist es jedoch auch möglich, für jeden Fremdschlüssel eine Maßnahme zu ergreifen, um die referenzielle Integrität aufrechtzuerhalten. Mit den Anweisungen CREATE TABLE und ALTER TABLE kann der Datenbankadministrator bzw. der Tabelleneigentümer angeben, welche Maßnahmen in Bezug auf Fremdschlüssel bei einer Verletzung ergriffen werden müssen, die sich auf einen geänderten Primärschlüssel beziehen.

Sie können jede der verfügbaren Maßnahmen für die referenzielle Integrität separat für Aktualisierungen und Löschungen des Primärschlüssels angeben:

  • RESTRICT   Erzeugt einen Fehler und verhindert die Änderung, wenn versucht wird, einen referenzierten Primärschlüssel zu ändern. Dies ist die Standardmaßnahme für referenzielle Integrität.

  • SET NULL   Setzt alle Fremdschlüssel, die sich auf den referenzierten Primärschlüssel beziehen, auf NULL.

  • SET DEFAULT   Setzt alle Fremdschlüssel, die sich auf den geänderten Primärschlüssel beziehen, auf den Standardwert für die betreffende Spalte (wie in der Tabellendefinition angegeben).

  • CASCADE   Im Zusammenhang mit ON UPDATE: Aktualisiert alle Fremdschlüssel, die sich auf den aktualisierten Primärschlüssel beziehen, auf den neuen Wert. Im Zusammenhang mit ON DELETE: Löscht alle Zeilen, die sich auf den gelöschten Primärschlüssel beziehen.

Systemtrigger implementieren Aktionen für die referenzielle Integrität. Der Trigger, der für die Primärtabelle definiert ist, wird mit den Berechtigungen des Eigentümers der sekundären Tabelle ausgeführt. Dieses Verhalten bedeutet, dass überlappende Vorgänge zwischen Tabellen mit unterschiedlichen Eigentümern stattfinden können, ohne dass zusätzliche Berechtigungen erteilt werden müssen.