Creating constraints¶
Eine Einschränkung kann beim Erstellen einer Tabelle mit CREATE TABLE erstellt bzw. einer Tabelle später mit ALTER TABLE hinzugefügt werden:
Einspaltige Einschränkungen können bei der Spaltendefinition inline erstellt werden.
Multi-column constraints must be created with a separate out-of-line clause that specifies the columns in the constraint.
Zum Erstellen einer Einschränkung muss die Rolle, die zum Erstellen der Einschränkung verwendet wird, bestimmte Zugriffssteuerungsrechte erhalten. Weitere Informationen dazu finden Sie unter Anforderungen an die Zugriffssteuerung.
Creating constraints inline¶
Die folgende Inline-Syntax kann nur für einspaltige Einschränkungen verwendet werden:
Weitere Details zur Syntax der inline_constraint finden Sie unter CREATE | ALTER TABLE … CONSTRAINT.
Creating constraints out-of-line¶
Folgende „Out-of-Line“-Syntax muss für mehrspaltige Einschränkungen verwendet werden, kann jedoch auch für einspaltige Einschränkungen genutzt werden:
Weitere Informationen zur Syntax der outofline_constraint finden Sie unter CREATE | ALTER TABLE … CONSTRAINT.
Einschränkungen in CREATE TABLE … LIKE und CLONE¶
Snowflake unterstützt das Erstellen von Tabellenkopien mit CREATE TABLE:
Verwenden Sie zum Erstellen einer leeren Kopie CREATE TABLE … LIKE.
Verwenden Sie zum Erstellen eines Klons CREATE TABLE … CLONE.
Außerdem werden beim Klonen eines Schemas oder einer Datenbank automatisch Tabellenkopien erstellt.
Unabhängig davon, wie eine Kopie für eine Tabelle erstellt wird, werden die Einschränkungen der Originaltabelle mit kopiert. Beim Kopieren eines Fremdschlüssels mit einer referenzierenden Tabelle (Fremdschlüsseltabelle) und einer referenzierten Tabelle (Primärschlüsseltabelle) können folgende Szenarien auftreten:
Wenn beide Tabellen im gleichen Befehl kopiert werden (z. B. beim Klonen eines Schemas oder einer Datenbank), wird zwischen der neuen referenzierenden Tabelle und der referenzierten Tabelle ein neuer Fremdschlüssel erstellt.
Wenn nur die referenzierende Tabelle kopiert wird, wird für die referenzierende Tabelle ein neuer Fremdschlüssel erstellt, der auf die ursprüngliche Primärschlüsseltabelle als referenzierte Tabelle verweist.
If only the referenced table is copied, no new foreign keys are created, although the primary or unique keys are copied.
Wenn Sie also eine referenzierende und eine referenzierte Tabelle separat kopieren, müssen Sie manuell einen neuen Fremdschlüssel erstellen oder die Primärschlüsseltabelle für den neuen Fremdschlüssel manuell ändern.