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 Einschränkungseigenschaften von Fremdschlüsseln 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 Kompatibilitä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 erzeugt wird.