«unique-constraint» etiketlenmiş sorular

DDL UNIQUE kısıtlamaları, bir sütunda veya bir grup sütunda bulunan verilerin tablodaki tüm satırlar arasında benzersiz olmasını sağlar. Bu nedenle, ilgili sütunda veya sütunlarda bulunan veriler, ilgili tabloda bir satırı benzersiz olarak tanımlamak için yararlıdır.

6
Benzersiz bir dizin yerine benzersiz bir kısıtlamayı ne zaman kullanmalıyım?
Bir sütunun farklı değerlere sahip olmasını istediğimde bir kısıtlama kullanabilirim create table t1( id int primary key, code varchar(10) unique NULL ); go veya benzersiz bir dizin kullanabilirim create table t2( id int primary key, code varchar(10) NULL ); go create unique index I_t2 on t2(code); Eşsiz kısıtlamaları olan sütunlar, …




2
Özel benzersiz sütun kısıtlaması, yalnızca bir sütunun belirli bir değeri varsa uygulanır
Aşağıdaki gibi özel bir benzersiz sütun kısıtlaması olması mümkün müdür? Diyelim ki iki sütun subsetve her iki dizgim var type(veri türleri muhtemelen önemli değil). Eğer type"doğru" olduğunu, sonra ben birleşimi istiyorum typeve subsetbenzersiz olması. Aksi takdirde, herhangi bir kısıtlama yoktur. Debian üzerinde PostgreSQL 8.4 kullanıyorum.


4
Bir anahtar neden açıklanmalıdır?
Veritabanları konusunda çok yeniyim, bu yüzden bu cahil gelebilir, ancak bir anahtarın neden bir tabloda açık hale getirilmesi gerektiğini merak ediyorum. Bu öncelikle kullanıcıya verilen sütun değerinin (umarım) her satırda benzersiz olduğunu garanti etmek mi? Teklikten bahsedilmese bile hala orada olmalıdır.

2
Atomik işlemlerde benzersiz ihlalden kaçının
PostgreSQL'de atomik işlem oluşturmak mümkün müdür? Bu satırlarla tablo kategorisine sahip olduğumu düşünün: id|name --|--------- 1 |'tablets' 2 |'phones' Ve sütun adı benzersiz bir kısıtlamaya sahiptir. Eğer denersem: BEGIN; update "category" set name = 'phones' where id = 1; update "category" set name = 'tablets' where id = 2; COMMIT; …

4
Endeks Benzersizliği Yükü
Ofisimdeki çeşitli geliştiricilerle bir endeksin maliyeti hakkında ve benzersizliğin yararlı mı yoksa maliyetli mi (muhtemelen her ikisi de) olup olmadığı konusunda sürekli bir tartışma yaşıyorum. Sorunun en önemli noktası rakip kaynaklarımızdır. Arka fon Daha önce Uniquebir Insertişlemin B ağacına sığdığı yeri dolaylı olarak kontrol ettiğinden ve benzersiz olmayan bir dizinde …

1
Benzersiz dizin güncellemeleri ve istatistik satırı değişiklik sayaçları
Aşağıdaki tablo, benzersiz kümelenmiş dizin ve istatistikler göz önüne alındığında: CREATE TABLE dbo.Banana ( pk integer NOT NULL, c1 char(1) NOT NULL, c2 char(1) NOT NULL ); CREATE UNIQUE CLUSTERED INDEX pk ON dbo.Banana (pk); CREATE STATISTICS c1 ON dbo.Banana (c1); CREATE STATISTICS c2 ON dbo.Banana (c2); INSERT dbo.Banana (pk, …

2
Postgres'de ertelenebilir benzersiz dizin
Değişiklik tablosu için postgres belgelerine bakıldığında , düzenli kısıtlamalar DEFERRABLE(daha somut olarak, INITIALLY DEFERREDilgilendiğim şey) olarak işaretlenebilir. Dizinler, şu sürece bir kısıtlamayla da ilişkilendirilebilir: Dizinde ifade sütunları veya kısmi dizin olamaz Bu da şu anda aşağıdaki gibi koşullara sahip benzersiz bir dizine sahip olmanın bir yolu olmadığına inanmamı sağlıyor: CREATE …

1
Bir nvarchar sütununun boyutunu değiştirirken, benzersiz dizini bırakmam gerekir mi? Dizini yeniden oluştururken tablo kilitlenecek mi?
Veritabanımızda az çok şuna benzeyen büyük bir tablo var: CREATE TABLE dbo.production_data ( pd_id BIGINT PRIMARY KEY, serial NVARCHAR(16) NOT NULL UNIQUE, ... ); ama şimdi seri alanın boyutu düştü, bu yüzden bunu 32 olarak değiştirmek istiyorum. Visual Studio şema karşılaştırma aracı bunu yapmanızı önerir: DROP INDEX ux_production_data_serial ON dbo.production_data; …

2
NULL değerlerle PostgreSQL UPSERT sorunu
Postgres 9.5'teki yeni UPSERT özelliğini kullanma konusunda sorun yaşıyorum Başka bir tablodan veri toplamak için kullanılan bir tablo var. Kompozit anahtar, 10 tanesi boş olabilen 20 sütundan oluşur. Aşağıda, özellikle NULL değerleri ile yaşadığım sorunun daha küçük bir sürümünü oluşturduk. CREATE TABLE public.test_upsert ( upsert_id serial, name character varying(32) NOT …

5
Bu GÜNCELLEME neden benzersiz bir anahtar kısıtlaması ihlaliyle başarısız oluyor?
Ben "kazara" bir DBA, nispeten deneyimsiz ve bu sorun şaşkın. MS SQL Server 2012 çalıştırılıyor. Sorun bu UPDATE deyimi ile: UPDATE dbo.tAccts SET Ticket = 'ARP.ExGE' , Method = 'smtp' , AcctOwner = 'r00417819' , DisplayName = '~AppLight HBSFax-Inactive' , Destination = 'r00417819@mail.ad.ge.com' , UpdatedBy = SYSTEM_USER , UpdatedOn = …

1
N'Șc ', Latin1_General_CI_AS harmanlamasını kullanarak N'C'nin yinelenen anahtarı olarak kabul edildi
Bir NVARCHAR(50)sütun (doğru ya da değil, ama orada) içeren benzersiz bir anahtar içeren bir tablo var. Bu nedenle, ekleme yapmaya çalışırken Șcveya C( eklemenin sırası önemli değil) harmanlama sorunları nedeniyle 2. ekte kırılır. İşte hata: (Etkilenen 1 satır) Msg 2601, Seviye 14, Durum 1, Satır 16 'dbo.testT' nesnesine benzersiz dizin …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.