«primary-key» etiketlenmiş sorular

İlişkisel veritabanı tasarımında, birincil anahtar tablodaki her satırı benzersiz olarak tanımlayabilir. Birincil anahtar, tek bir sütun veya bir sütun kümesi içerir.

8
Birincil anahtar değeri neden değişsin?
Son zamanlarda ROWGUID kavramını araştırıyorum ve bu soruya rastladım . Bu cevap bir fikir verdi, ancak birincil anahtar değerini değiştirmekten bahsederek beni farklı bir tavşan deliğine götürdü. Benim anlayışım her zaman birincil bir anahtarın değişmez olması gerektiğiydi ve bu cevabı okuduğumdan beri yaptığım araştırma sadece en iyi uygulama ile aynı …






4
Tablonun tüm sütunlarını içeren bir birincil anahtarın herhangi bir faydası var mı?
Tüm nulllable dört sütun içeren bir tablo var ve veri dört benzersiz bir kaydı ayırt etmek için gerekli olmasıdır. Bu, birincil anahtar yapacak olsaydım, tüm sütunları içermesi gerektiği anlamına gelir. Tabloya karşı sorgular neredeyse her zaman tek bir kaydı geri almak olacaktır, yani tüm sütunlar sorguda filtrelenecektir. Her sütunun aranması …

2
Birincil anahtardaki dizin basit birleştirmede kullanılmaz
Aşağıdaki tablo ve dizin tanımları var: CREATE TABLE munkalap ( munkalap_id serial PRIMARY KEY, ... ); CREATE TABLE munkalap_lepes ( munkalap_lepes_id serial PRIMARY KEY, munkalap_id integer REFERENCES munkalap (munkalap_id), ... ); CREATE INDEX idx_munkalap_lepes_munkalap_id ON munkalap_lepes (munkalap_id); Neden munkalap_id dizinlerinin hiçbiri aşağıdaki sorguda kullanılmıyor? EXPLAIN ANALYZE SELECT ml.* FROM munkalap …

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.

4
SQL Server kilitlenme raporundaki bir anahtarı değere nasıl dönüştürebilirim?
Bana waitresource = "KEY: 9: 72057632651542528 (543066506c7c)" içeren bir çakışma olduğunu söyleyen bir kilitlenme raporu var ve bunu görebilirsiniz: <keylock hobtid="72057632651542528" dbid="9" objectname="MyDatabase.MySchema.MyTable" indexname="MyPrimaryKeyIndex" id="locka8c6f4100" mode="X" associatedObjectId="72057632651542528"> <kaynak-listesi> içinde. Anahtar için gerçek değeri bulmak istiyorum (örneğin id = 12345). Bu bilgileri elde etmek için hangi SQL deyimini kullanmam gerekir?

4
Birincil anahtarda belirtilen sıralama düzeni, ancak sıralama SELECT'te yürütüldü
Sensör verilerini SensorValues tablosunda saklıyorum . Tablo ve birincil anahtar aşağıdaki gibidir: CREATE TABLE [dbo].[SensorValues]( [DeviceId] [int] NOT NULL, [SensorId] [int] NOT NULL, [SensorValue] [int] NOT NULL, [Date] [int] NOT NULL, CONSTRAINT [PK_SensorValues] PRIMARY KEY CLUSTERED ( [DeviceId] ASC, [SensorId] ASC, [Date] DESC ) WITH ( FILLFACTOR=75, DATA_COMPRESSION = PAGE, …

2
İlişkisel veritabanlarındaki arama tablolarıyla ilgili en iyi uygulamalar nelerdir?
Arama tabloları (veya bazılarının dediği gibi kod tabloları ) genellikle belirli bir sütun için verilebilecek olası değerlerin toplamıdır. Örneğin party, iki sütunu olan (siyasi partiler hakkında bilgi depolamak için) adlı bir arama tablonuz olduğunu varsayalım : party_code_idn, sistem tarafından oluşturulan sayısal değerleri tutar ve ( iş alanı anlamından yoksundur ) …

5
'Büyük' ​​veritabanı tablosu PK için sıralı GUID veya bigint
Bu tür bir sorunun çok geldiğini biliyorum, ama henüz bu kararı vermeme yardımcı olacak herhangi bir zorlayıcı argüman okumadım. Lütfen bana eşlik et! Büyük bir veritabanım var - günde yaklaşık 10.000.000 kayıt büyüyor. Veriler ilişkiseldir ve performans nedenleriyle tabloyu BULK COPY ile yüklüyorum. Bu nedenle, satırlar için anahtarlar oluşturmak gerekir …

4
Mevcut PK'ye otomatik eklemeyi ekle
Zaten başka bir DB'de bulunan bir DB'de bir tablo oluşturdum. Başlangıçta eski DB verileriyle dolduruldu. Tablonun PK'sı bu kayıtlarda zaten var olan değerleri almak zorundaydı, bu yüzden otomatik artış olamazdı. Şimdi PK'sını otomatik artış olarak göstermesi için yeni tabloya ihtiyacım var. Ama bunu PK zaten mevcut ve veri aldıktan sonra …


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.