Einschränkungen

Deltatabellen unterstützen standardmäßige SQL-Einschränkungsverwaltungsklauseln, die sicherstellen, dass die Qualität und Integrität der einer Tabelle hinzugefügten Daten automatisch überprüft wird. Wenn eine Einschränkung verletzt wird, löst Delta Lake eine aus, um zu signalisieren, dass die neuen InvariantViolationException Daten nicht hinzugefügt werden können.

Es werden zwei Arten von Einschränkungen unterstützt:

  • NOT NULL: Gibt an, dass Werte in bestimmten Spalten nicht NULL sein dürfen.
  • CHECK: Gibt an, dass ein angegebener boolescher Ausdruck für jede Eingabezeile true sein muss.

NOT NULL-Einschränkung

Hinweis

  • DROP NOT NULL ist in Databricks Runtime 7.0 und höher verfügbar.
  • SET NOT NULL ist in Databricks Runtime 7.4 und höher verfügbar.
  • Vor dem Hinzufügen einer Einschränkung zu einer Tabelle überprüft Azure Databricks, ob alle NOT NULL vorhandenen Zeilen die Einschränkung erfüllen.

Sie geben NOT NULL Einschränkungen im Schema an, wenn Sie eine Tabelle erstellen und Einschränkungen NOT NULL mit dem Befehl ALTER TABLE CHANGE COLUMN ablegen.

CREATE TABLE default.people10m (
  id INT NOT NULL,
  firstName STRING,
  middleName STRING NOT NULL,
  lastName STRING,
  gender STRING,
  birthDate TIMESTAMP,
  ssn STRING,
  salary INT
) USING DELTA;

ALTER TABLE default.people10m CHANGE COLUMN middleName DROP NOT NULL;

Sie können einschränkungen NOT NULL zu einer vorhandenen NOT NULL Sie den Befehl ALTER TABLE CHANGE COLUMN SET NOT NULL verwenden.

CREATE TABLE events(
  id LONG,
  date STRING,
  location STRING,
  description STRING
) USING DELTA;

ALTER TABLE events CHANGE COLUMN id SET NOT NULL;

Wenn Sie eine Einschränkung für eine Spalte angeben, die innerhalb einer Struktur geschachtelt ist, ist die übergeordnete Struktur ebenfalls darauf beschränkt, nicht NOT NULL NULL zu sein. Spalten, die in Array- oder Zuordnungstypen geschachtelt sind, akzeptieren jedoch keine NOT NULL Einschränkungen.

Referenzinformationen finden Sie unter CREATE TABLE USING und ALTER TABLE CHANGE COLUMN.

CHECK-Einschränkung

Hinweis

  • Verfügbar in Databricks Runtime 7.4 und höher.
  • In Databricks Runtime 7.3 LTS können Sie in Tabellen mit definierten Einschränkungen CHECK schreiben, jedoch keine Einschränkungen CHECK erstellen.

Sie verwalten CHECK Einschränkungen mithilfe der Befehle ALTER TABLE ADD CONSTRAINT und ALTER TABLE DROP CONSTRAINT . ALTER TABLE ADD CONSTRAINT überprüft, ob alle vorhandenen Zeilen die Einschränkung erfüllen, bevor sie der Tabelle hinzugefügt werden.

CREATE TABLE default.people10m (
  id INT,
  firstName STRING,
  middleName STRING,
  lastName STRING,
  gender STRING,
  birthDate TIMESTAMP,
  ssn STRING,
  salary INT
) USING DELTA;

ALTER TABLE default.people10m ADD CONSTRAINT dateWithinRange CHECK (birthDate > '1900-01-01');
ALTER TABLE default.people10m DROP CONSTRAINT dateWithinRange;

Referenzinformationen finden Sie unter ALTER TABLE ADD CONSTRAINT und ALTER TABLE DROP CONSTRAINT.

CHECK -Einschränkungen sind Tabelleneigenschaften in der Ausgabe der Befehle DESCRIBE DETAIL und SHOW TBLPROPERTIES .

ALTER TABLE default.people10m ADD CONSTRAINT validIds CHECK (id > 1 and id < 99999999);

DESCRIBE DETAIL default.people10m;

SHOW TBLPROPERTIES default.people10m;