Bir MySQL komut dosyası veya PHP ile MySQL Tablo ID satır yeniden

2 Cevap php

i bir veritabanı web sayfamda kullanmak kullanıcıların bilgi ile doldurmak zorunda. Tablo gibi birçok MySQL tabloları değiştirmemesi olduğunu kimliği parametreleri var. Sorun birileri siteden onun hesabını ortadan kaldırmak zaman, veritabanında i kimliği bazı atlamayı bulursanız başarısız bir komut dosyası var çünkü istemiyorum dizisinde bir sıçrama kalmasıdır.

Ör.

ID   Name  PASS
1    Jhon  1234
2    Max   2233
3    Jorge 2232

Max çıkmak ve yeni bir kullanıcı giderseniz, bu happend budur.

ID   Name  PASS
1    Jhon  1234
4    NewU  1133
3    Jorge 2232

Peki bu isuue önlemek amacıyla veri tabanından bazı vücut silmek için en iyi yoldur, ya da bir yol değilse, kimlik satırdaki tüm içeriğini ortadan kaldırmak bir PHP veya MySQL komut dosyası yapmak ve onu yeniden kendi doktorunun sipariş? Teşekkürler Bir çok! benim İngilizce için üzgünüm

2 Cevap

Ben Autoıncrement ile sorunu değil düşünüyorum, ama oldukça script.

ALMOST NEVER, bir veritabanında değiştirmemesi numaralarını yeniden istiyorum. Bu amacı yendi.

I would rather recomend you work on fixing your script.

This is all kinds of wrong, ancak bu sefer Reset a auto increment field?

Since autoincrement fields are typically used as keys linking to other tables, renumbering existing records is not done often. If you REALLY want to renumber them all, copy the records to a new table but leave off the autoincrement field. TRUNCATE the original table and copy back the original records, supplying NULL for the autoincrement field.

Bu yaklaşımı kullanarak, elle de bu yeni kimlikleri, tüm yabancı anahtarlar, bağlantıları güncelleştirmek zorunda olacak, which seems like a very big taks compared to fixing your script

It is not recommended that you try to keep your primary keys sequential. Bu bağımlılık değil senin senaryoyu yeniden çok daha iyidir. Veri üzerinde birincil anahtarları değiştirerek veri bütünlüğü ve performansı hem de kötü bir fikirdir.