Birincil anahtar için sayısını belirlemek için standart bir yolu nedir?

8 Cevap php

Ben PHP ve MySQL kullanarak çok basit bir program yapmak planlıyorum. Ana sayfa bilgi almak ve bu bilgileri veritabanına yeni bir satır yapacaktır. Ancak, birincil anahtar koymak için bir dizi gerekir. Ne yazık ki, ben kullanmak ne umber belirlemek için normal bir yol hakkında hiçbir fikrim yok. Ben bir satır silerseniz Tercihen, bu satırın anahtar hiç tekrar edilmeyecektir.

Bir ön arama mySQL AUTOINCREMENT anahtar döndü. Ancak, ben yine ben istediğim için çalışmak ve ne bu soruna ortak çözüm olmadığını bilmek istiyorum.

8 Cevap

MySQL o standard solution.

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
 );

Kendi PK oluşturmak için bir nedeniniz olmadıkça sonra AUTOINCREMENT kullanarak yeterince iyi olurdu. Bu şekilde veritabanı anahtarları yönetir. Bir satır takarken birincil anahtar sütunu dışarı bırakmak zorunda.

Eğer bir tablo tablo = var demek (a, b, c) nerede bir birincil anahtar sonra ekleme deyimi olacaktır edilir

tabloya (b, c) değerleri ('bbb', 'CCC') insert

ve birincil anahtar databse tarafından eklenen otomatik olacaktır.

AUTOINCREMENT istediğiniz şeydir. Sürece tablonun ayarlarını değiştirmek yok gibi, AUTOINCREMENT büyümeye devam edecektir.

değiştirmemesi

AUTOINCREMENT otomatik olarak benzersiz bir anahtar oluşturmak için standart bir yoludur. Bu (veya 0 ben hatırlayamıyorum ve bu önemli değil) 1 başlayacak tabloya eklenen her yeni kayıtla artırmak sonra. Bir kayıt silinirse, anahtar not yeniden edilecektir.

Otomatik artış birincil anahtarlar hangi hafta konuştuğunuz hangi DBA bağlı olarak nispeten standarttır.

Ben temel kimlik tamsayı yaklaşık 2 milyar satır (mySQL için bu hak mı?) Odadan dışarı çalıştırmadan önce bu yüzden kapağı vurma konusunda endişelenmenize gerek yok vuracaktır inanıyorum.

Otomatik artma o 1'den eklemek her yeni satır için başlayan sayısını ayarlar, ortak bir seçimdir. Eğer (php ben düşünüyorum çağırdığını mysql_last_insertid bunu almak) için gerekirse db tarafından yapılır hangi kullanmak için numara endam tüm iş, sadece taktıktan sonra geri isteyin

Bir şey için basit bir oto artış en iyisidir. Sonuçta girişleri çok şey olacak daha karmaşık bir şey için bir GUID oluşturmak ve anahtar olarak bu yerleştirin.