Damit eine Fremdschlüsselbeziehung gültig ist, müssen die Einträge im Fremdschlüssel den Primärschlüsselwerten einer Zeile in der referenzierten Tabelle entsprechen. Gelegentlich kann eine andere eindeutige Spaltenkombination anstelle des Primärschlüssels referenziert werden.
Ein Fremdschlüssel ist eine Referenz auf einen Primärschlüssel oder eine UNIQUE-Regel, normalerweise in einer anderen Tabelle. Wenn dieser Primärschlüssel nicht existiert, wird der bezugslose Fremdschlüssel Waise genannt. SQL Anywhere stellt automatisch sicher, dass Ihre Datenbank keine Zeilen enthält, die die referenzielle Integrität verletzen. Dieser Prozess wird Überprüfen der referenziellen Integrität genannt. Der Datenbankserver überprüft die referenzielle Integrität, indem er Waisen zählt.
Bei Verwendung eines Fremdschlüssels mit mehreren Spalten können Sie mithilfe der MATCH-Klausel bestimmen, was als verwaiste Zeile zu behandeln ist und was als Verletzung der referenziellen Integrität. Die MATCH-Klausel ermöglicht es Ihnen außerdem, Eindeutigkeit für den Schlüssel anzugeben, wodurch sich ein separates Deklarieren der Eindeutigkeit erübrigt.
Es folgt eine Liste der MATCH-Typen, die Sie angeben können:
MATCH [ UNIQUE ] SIMPLE Eine Übereinstimmung tritt für eine Zeile in der Fremdschlüsseltabelle auf, wenn alle Spaltenwerte mit den entsprechenden Spaltenwerten in einer Zeile der Primärschlüsseltabelle übereinstimmen. Eine Zeile wird in der Fremdschlüsseltabelle zur Waisen, wenn mindestens ein Spaltenwert im Fremdschlüssel NULL ist.
MATCH SIMPLE ist das Standardverhalten.
Wenn das UNIQUE-Schlüsselwort angegeben ist, kann die referenzierende Tabelle bei Nicht-NULL-Schlüsselwerten jeweils nur eine Übereinstimmung enthalten.
MATCH [ UNIQUE ] FULL Eine Übereinstimmung tritt für eine Zeile in der Fremdschlüsseltabelle auf, wenn keiner der Werte NULL ist und die Werte mit den entsprechenden Spaltenwerten in einer Zeile der Primärschlüsseltabelle übereinstimmen. Eine Zeile wird zur Waisen, wenn alle Spaltenwerte im Fremdschlüssel NULL sind.
Wenn das UNIQUE-Schlüsselwort angegeben ist, kann die referenzierende Tabelle bei Nicht-NULL-Schlüsselwerten jeweils nur eine Übereinstimmung enthalten.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |