Klucze podstawowe, klucze obce i klucze unikatowe w Warehouse w Microsoft Fabric

Dotyczy:✅ punkt końcowy analizy SQL i magazyn w usłudze Microsoft Fabric

Dowiedz się więcej o ograniczeniach tabel w punkcie końcowym analizy SQL i składniku Warehouse w usłudze Microsoft Fabric, w tym o kluczu podstawowym, kluczach obcych i kluczach unikatowych.

Ważne

Aby dodać lub usunąć klucz główny, klucz obcy lub unikalne ograniczenia, użyj ALTER TABLE. Nie możesz tworzyć tych ograniczeń bezpośrednio w instrukcji CREATE TABLE.

Ograniczenia tabeli

Punkt końcowy analizy SQL i Warehouse w Microsoft Fabric obsługują dodawanie następujących ograniczeń tabel do istniejących tabel:

  • PRIMARY KEY jest obsługiwany tylko wtedy, gdy używasz NONCLUSTERED i NOT ENFORCED.
  • FOREIGN KEY jest obsługiwany tylko wtedy, gdy używasz NOT ENFORCED.
  • UNIQUE ograniczenie jest obsługiwane tylko wtedy, gdy używamy NONCLUSTERED i NOT ENFORCED.

Aby uzyskać informacje o składni, sprawdź ALTER TABLE.

Ważne

Istnieją ograniczenia przy dodawaniu ograniczeń tabelowych lub kolumn przy użyciu Git Integration for Fabric Warehouse Development.

Przykłady

Utwórz tabelę usługi Microsoft Fabric Warehouse z kluczem podstawowym:

CREATE TABLE PrimaryKeyTable (c1 INT NOT NULL, c2 INT);

ALTER TABLE PrimaryKeyTable ADD CONSTRAINT PK_PrimaryKeyTable PRIMARY KEY NONCLUSTERED (c1) NOT ENFORCED;

Utwórz tabelę usługi Microsoft Fabric Warehouse z unikatowym ograniczeniem:

CREATE TABLE UniqueConstraintTable (c1 INT NOT NULL, c2 INT);

ALTER TABLE UniqueConstraintTable ADD CONSTRAINT UK_UniqueConstraintTablec1 UNIQUE NONCLUSTERED (c1) NOT ENFORCED;

Utwórz tabelę usługi Microsoft Fabric Warehouse z kluczem obcym:

CREATE TABLE ForeignKeyReferenceTable (c1 INT NOT NULL);

ALTER TABLE ForeignKeyReferenceTable ADD CONSTRAINT PK_ForeignKeyReferenceTable PRIMARY KEY NONCLUSTERED (c1) NOT ENFORCED;

CREATE TABLE ForeignKeyTable (c1 INT NOT NULL, c2 INT);

ALTER TABLE ForeignKeyTable ADD CONSTRAINT FK_ForeignKeyTablec1 FOREIGN KEY (c1) REFERENCES ForeignKeyReferenceTable (c1) NOT ENFORCED;