Einschränkungseigenschaften¶
Einschränkungseigenschaften werden in der CONSTRAINT-Klausel für einen CREATE TABLE- oder ALTER TABLE-Befehl angegeben.
Unter diesem Thema:
ANSI SQL-Einschränkungseigenschaften¶
Eigenschaften für alle Einschränkungen¶
Die folgenden Einschränkungseigenschaften des ANSI SQL-Standards gelten für alle Einschränkungen (eindeutiger Schlüssel, Primärschlüssel und Fremdschlüssel):
- ENFORCED | NOT ENFORCED
Gibt an, ob die Einschränkung in einer Transaktion erzwungen wird. Beachten Sie, dass
NOT NULL
die einzige Einschränkung ist, die von Snowflake erzwungen wird. Siehe Einschränkungen für die referenzielle Integrität.- DEFERRABLE | NOT DEFERRABLE
Gibt an, ob bei nachfolgenden Transaktionen die Einschränkungsprüfung bis zum Ende der Transaktion zurückgestellt werden kann.
- INITIALLY { DEFERRED | IMMEDIATE }
Gibt für Einschränkungen vom Typ DEFERRABLE an, ob die Prüfung der Einschränkungen mit Beginn der nächsten Transaktion zurückgestellt werden kann.
Die Standardwerte für die standardmäßigen Einschränkungseigenschaften lauten:
NOT ENFORCED
DEFERRABLE
INITIALLY DEFERRED
Eigenschaften nur für Fremdschlüsseleinschränkungen¶
Die folgenden Einschränkungseigenschaften sind ebenfalls Teil des ANSI SQL-Standards, gelten jedoch nur für Fremdschlüssel:
- MATCH { FULL | PARTIAL | SIMPLE }
Gibt an, ob der Fremdschlüssel in Bezug auf NULL-Werte in einer oder mehreren Spalten erfüllt ist.
- UPDATE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION }
Gibt die Aktion an, die ausgeführt werden soll, wenn der Primärschlüssel/eindeutige Schlüssel für den Fremdschlüssel aktualisiert wird.
- DELETE { CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION }
Gibt die Aktion an, die ausgeführt werden soll, wenn der Primärschlüssel/eindeutige Schlüssel für den Fremdschlüssel gelöscht wird.
Die Standardwerte für die Eigenschaften von Fremdschlüsseleinschränkungen lauten:
MATCH FULL
UPDATE NO ACTION
DELETE NO ACTION
Erweiterte Einschränkungseigenschaften¶
Folgende Eigenschaften sind nicht Teil des ANSI SQL-Standards, werden jedoch aus Gründen der Kompatibilität mit anderen Datenbanken unterstützt. Sie gelten für alle Einschränkungen (eindeutiger Schlüssel, Primärschlüssel und Fremdschlüssel):
- ENABLE | DISABLE
Gibt an, ob die Einschränkung aktiviert oder deaktiviert ist. Diese Eigenschaften werden aus Gründen der Kompatibilität mit Oracle bereitgestellt.
- VALIDATE | NOVALIDATE
Gibt an, ob vorhandene Daten in der Tabelle überprüft werden sollen, wenn eine Einschränkung erstellt wird. Wird nur in Verbindung mit der Eigenschaft ENABLE | DISABLE genutzt.
- RELY | NORELY
Gibt an, ob eine Einschränkung im Modus NOVALIDATE beim Neuschreiben von Abfragen berücksichtigt wird.
Die Standardwerte für die erweiterten Einschränkungseigenschaften lauten:
DISABLE
NOVALIDATE
RELY
Nicht-Standardwerte für Einschränkungseigenschaften¶
Aus Gründen der SyntaxKompatibilität mit anderen Datenbanken unterstützt Snowflake die Angabe von nicht standardmäßigen Werten für Einschränkungseigenschaften. Wenn jedoch bei der Erstellung einer Einschränkung Werte angegeben werden, die nicht standardmäßig sind, wird die Einschränkung nicht erstellt.
Beachten Sie, dass Snowflake den Sitzungsparameter UNSUPPORTED_DDL_ACTION bereitstellt, um festzulegen, ob bei Angabe von Nicht-Standardwerten während der Erstellung von Einschränkungen ein Fehler generiert wird.