dışlama kısıtlama `özünü KULLANARAK ne EXCLUDE geliyor (c İLE &&)` demek?

oy
2

PostgreSQL dokümandan

Dışlama kısıtlamaları herhangi iki satır belirtilen operatörleri kullanarak belirtilen sütun veya ifadeleriyle ilgili karşılaştırılır eğer, bu operatör karşılaştırmaların en az bir yanlış veya boş dönecektir emin olun. sözdizimi:

CREATE TABLE circles (
    c circle,
    EXCLUDE USING gist (c WITH &&)
);

Ben merak ediyorum EXCLUDE USING gist (c WITH &&)demektir? Özel olarak, gist(), c WITH &&ve EXCLUDE USING.

O yönünden yeniden yazılabilir check? Teşekkürler.

Oluştur 09/07/2018 saat 12:43
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Bir ise CHECKkısıtlama tablosunun tek sıra göre bir ifade olarak değerlendirilir, bir EXCLUDEkısıtlama tabloda iki sıra arasında bir karşılaştırma değerlendirir. Genelleştirilmiş gibi düşünün UNIQUEkısıtlaması: Bunun yerine "hayır iki satır eşit olabilir" nin "hayır iki satır olabilir hatta "hiçbir iki satır üst üste" veya benzeri şeyleri söyleyebiliriz farklı ".

Değerlerin mümkün olan tüm kombinasyonlarını kontrol etmeden bunu başarmak için, buna eklemek veya satır güncellemek olası ihlalleri bulmanızı sağlar uygun bir indeks yapısını ihtiyacı vardır. Bu nedir gist: bildirimin parçası anlamına gelir endeksinin belirli bir türdeki eşitlik dışındaki işlemleri hızlandırmak için kullanılabilir.

: Beyan kalan kısıtlama kendisi ctest edilen sütun ve &&satır herhangi bir çift için de geçerlidir vermemelidir operatördür. Bu durumda, &&"çakışma" operatörüdür geometrik operatörler manuel sayfasında listelenen .

Yani araya, kısıt EXCLUDE USING gist (c WITH &&)"hiçbir iki değer çevirir cbirbirlerine (daha doğrusu örtüşmesi gerekir A.c && B.ctüm farklı satırlar için yanlış veya boş dönmek zorundadır Ave B) ve bir kullanın lütfen gistbu kısıtlamayı izlemek için endeksini".

Cevap 09/07/2018 saat 13:15
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more