Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime
Bir CREATE TABLE veya CREATE MATERIALIZED VIEW deyiminin parçası olarak bilgilendirme amaçlı birincil anahtar veya bilgilendirme amaçlı yabancı anahtar ekler.
Delta Lake tablosuna denetim kısıtlaması eklemek için tablo oluşturulduktan sonra ALTER TABLE kullanın.
Sözdizimi
Birden çok sütuna yayılan kısıtlamaları tanımlamak veya söz dizimini sütun tanımından ayırmak için table_constraint yan tümcesini kullanın.
table_constraint
{ [ CONSTRAINT name ]
{ PRIMARY KEY ( key_column [ TIMESERIES ] [, ...] ) [ constraint_option [...] ] |
{ FOREIGN KEY ( foreign_key_column [, ...] )
REFERENCES parent_table [ ( parent_column [, ...] ) ]
[ foreign_key_option | constraint_option ] [...]
}
}
}
Tek bir sütun tanımına özgü kısıtlamaları tanımlamak için column_constraintyan tümcesini kullanın.
column_constraint
{ [ CONSTRAINT name ]
{ PRIMARY KEY [ constraint_option ] [...] |
{ [ FOREIGN KEY ]
REFERENCES parent_table [ ( parent_column [, ...] ) ]
[ foreign_key_option | constraint_option ] [...]
}
}
}
constraint_option
{ NOT ENFORCED |
DEFERRABLE |
INITIALLY DEFERRED |
{ RELY | NORELY } }
foreign_key_option
{ MATCH FULL |
ON UPDATE NO ACTION |
ON DELETE NO ACTION }
Standart olmayan SQL diyalektleriyle uyumluluk için yerine ENABLE NOVALIDATEbelirtebilirsinizNOT ENFORCED DEFERRABLE INITIALLY DEFERRED.
Parametreler
CONSTRAINTadİsteğe bağlı olarak kısıtlama için bir ad belirtir. Adın şema içinde benzersiz olması gerekir. İsim sağlanmadığında Azure Databricks bir isim oluşturur.
PRIMARY KEY( key_column [ TIMESERIES ] [, ...] ) [ constraint_option [...] ]Şunlar için geçerlidir:
Databricks SQL
Databricks Runtime 11.3 LTS ve üzeri
evet olarak işaretlendiTabloya veya gerçekleştirilmiş görünüme bilgilendirici birincil anahtar kısıtlaması ekler. Tablo veya malzemeleşmiş görünüm en fazla bir birincil anahtara sahip olabilir.
Birincil anahtar sütunları örtük olarak
NOT NULLolarak tanımlanır.birincil anahtar kısıtlamaları
hive_metastorekataloğundaki tablolar için desteklenmez.-
Konu tablosu veya gerçekleştirilmiş görünümün bir sütunu. Sütun adları tekrarlanmamalıdır.
TIMESERIESŞunlar için geçerlidir:
Databricks SQL
Databricks Runtime 13.3 LTS ve üzeriİsteğe bağlı olarak birincil anahtar sütunu bileşenini zaman aralıklarını temsil eden olarak etiketler.
-
PRIMARY KEY [ constraint_option ] [...]Yukarıdaki anahtar sütun tanımını kullanarak tabloya veya gerçekleştirilmiş görünüme tek sütunlu birincil anahtar kısıtlaması ekler.
Bu
column_constraint,table_constraint'e eşdeğerdir.PRIMARY KEY (key_column) [ constraint_option ] [...]FOREIGN KEY (foreign_key_column [, ...] ) REFERENCES parent_table [ ( parent_column [, ...] ) ] foreign_key_optionŞunlar için geçerlidir:
Databricks SQL
Databricks Runtime 11.3 LTS ve üzeri
evet olarak işaretlendiTabloya veya gerçekleştirilmiş görünüme bilgilendirme amaçlı yabancı anahtar (başvurusal bütünlük) kısıtlaması ekler.
yabancı anahtar kısıtlamaları
hive_metastorekataloğundaki tablolar için desteklenmez.Yalnızca yabancı anahtar sütunlarının permütasyonunda farklılık gösteren yabancı anahtar kısıtlamalarına izin verilmez.
-
Konu tablosu veya gerçekleştirilmiş görünümün bir sütunu. Sütun adları tekrarlanmamalıdır. Her sütunun veri türü eşleşen
parent_columntürüyle eşleşmelidir. Sütun sayısı,parent_columnsayısıyla eşleşmelidir. İki yabancı anahtar, aynı yabancı anahtar sütunları kümesini paylaşamaz. -
Yabancı anahtarın başvurduğu tabloyu veya materyalize edilmiş görünümü belirtir. Tabloda tanımlı bir
PRIMARY KEYkısıtlaması olmalı ve tablodaSELECTayrıcalığına sahip olmanız gerekir. -
Birincil anahtarın parçası olan, üst tabloda veya gerçekleştirilmiş görünümde bulunan bir sütun. Üst tablonun veya gerçekleştirilmiş görünümün tüm birincil anahtar sütunları listelenmelidir.
Üst sütunlar listelenmiyorsa,
PRIMARY KEYtanımında verilen sırayla belirtilir. FOREIGN KEY REFERENCES parent_table [ ( parent_column ) ] foreign_key_optionYukarıdaki yabancı anahtar sütun tanımını kullanarak tabloya veya gerçekleştirilmiş görünüme tek sütunlu yabancı anahtar kısıtlaması ekler.
Bu
column_constraint,table_constraint'e eşdeğerdir.FOREIGN KEY ( foreign_key_column ) REFERENCES parent_table [ ( parent_column ) ] foreign_key_option
-
kısıtlama_seçeneği
Kısıtlamaların özelliklerini listeler. Tüm özellikler isteğe bağlıdır ancak varsayılan olarak kabul edilir. Her özellik en fazla bir kez belirtilebilir.
NOT ENFORCEDAzure Databricks, mevcut veya yeni satırlarda uygulamak için herhangi bir işlem yapmaz.
DEFERRABLEKısıtlama zorlaması ertelenebilir.
INITIALLY DEFERREDKısıtlama zorlaması ertelendi.
NORELYveyaRELYŞunlar için geçerlidir:
Databricks SQL
Databricks Runtime 14.2 ve üzeri için kısıtlamalarŞunlar için geçerlidir:
Databricks SQL 
FOREIGN KEYkısıtlamaları için Databricks Runtime 15.4 ve üzeriise
RELY, Azure Databricks sorguları yeniden yazmak ve iyileştirmek için kısıtlamadan yararlanabilir. Kısıtlamanın karşılandığından emin olmak kullanıcının sorumluluğundadır. Karşılanmamış bir kısıtlamaya güvenmek yanlış sorgu sonuçlarına neden olabilir. KomutlaRELYilişkili sorgu iyileştirmeleri, sorguların Photon özellikli işlemde çalıştırılmasını gerektirir. Bkz . Photon nedir?.Varsayılan değer:
NORELY.
foreign_key_option (yabancı_anahtar_seçeneği)
Yabancı anahtar kısıtlamalarına özgü özellikleri listeler. Tüm özellikler isteğe bağlıdır ancak varsayılan olarak kabul edilir. Her özellik en fazla bir kez belirtilebilir.
MATCH FULLKısıtlamanın doğru olarak kabul edilmesi için tüm sütun değerlerinin
NOT NULLolması gerekir.ON UPDATE NO ACTIONÜst
PRIMARY KEYgüncelleştirilirse, Azure Databricks güncelleştirmeyi kısıtlamak veya yabancı anahtarı güncelleştirmek için hiçbir işlem gerçekleştirmez.ON DELETE NO ACTIONÜst satır silinirse, Azure Databricks eylemi kısıtlamak, yabancı anahtarı güncelleştirmek veya bağımlı satırı silmek için hiçbir işlem gerçekleştirmez.
Önemli
Azure Databricks birincil anahtar veya yabancı anahtar kısıtlamalarını zorlamaz. Birincil veya yabancı anahtar eklemeden önce anahtar kısıtlamalarını onaylayın. Alma işleminiz böyle bir güvence sağlayabilir veya verileriniz üzerinde denetimler çalıştırabilirsiniz.
Örnekler
-- Create a table with a primary key
> CREATE TABLE persons(first_name STRING NOT NULL, last_name STRING NOT NULL, nickname STRING,
CONSTRAINT persons_pk PRIMARY KEY(first_name, last_name));
-- create a table with a foreign key
> CREATE TABLE pets(name STRING, owner_first_name STRING, owner_last_name STRING,
CONSTRAINT pets_persons_fk FOREIGN KEY (owner_first_name, owner_last_name) REFERENCES persons);
-- Create a table with a single column primary key and system generated name
> CREATE TABLE customers(customerid STRING NOT NULL PRIMARY KEY, name STRING);
-- Create a table with a names single column primary key and a named single column foreign key
> CREATE TABLE orders(orderid BIGINT NOT NULL CONSTRAINT orders_pk PRIMARY KEY,
customerid STRING CONSTRAINT orders_customers_fk REFERENCES customers);