Sorunumu ve soruyu özetlemek için elimden gelenin en iyisini yapacağım.Tabloyu Değiştirmek Birincil Anahtar Kimliği Oluşturulma Sırası Oluşturulma Tarihi
Sorun:
Ben MySQL veritabanından Makalelerimi ihraç ancak orijinal Birincil Anahtar kimliği tutmadı. Onu başka bir veritabanına aktardım ve iç içe oldu. Sorun, Oluşturulma Tarihi sütununun, table_contents öğesinden birincil anahtar kimliğine göre sıralı olmamasıdır. Diğer bazı bilgiler. PK otomatik artımdır.
Gördüğünüz gibi, oluşturulan tarih hiç kronolojik değildir: Aşağıdaki resim bakınız. Şimdi benim yarattığım tarihe göre tablo sıraladığınızda:
kimliklerini sırayla da değildir.
Olası Çözüm:
el olabilir yeniden düzenleyebilir tablosundaki her bir öğe, ama bu uzun zaman alacaktı.
Benim Düşünme:
SQL'de bir acemi değilim, ama ben istediğimi yapmak yazabilir SQL sorgusunun ne tür? Ne düşündüğümü, table_contents'ın bir kopyasını oluşturmak, orijinali ve kopyayı bir araya getirmek ve daha sonra ID'leri oluşturulma tarihine göre değiştirmek zorunda kalacağımı düşünüyordum. Sorgunun nasıl dürüst yazılacağından emin değilim.
Sorum:
nasıl içerik oluşturulduktan tarih sütuna göre kronolojik sırayla artan olmaya birincil anahtar kimlikleri sütunu değiştirmek için bir sorgu yazarsınız?
Kapanış: Ben anlamış değilim ya bu mümkün değilse
söyle lütfen. Teşekkür ederim!
Düzenleme: bir sorgu yazmaya çalıştı şimdiye kadar Geribildirimlerinizden Yani: ne denedim ile
ALTER TABLE skwx_content;
SELECT @row_num := @row_num + 1 as newid, skwx_content.id from skwx_content , (select @row_num := 0) x order by skwx_content.created asc
ALTER TABLE skwx_content DROP PRIMARY KEY;
ADD COLUMN newid INT(10) NOT NULL AUTO_INCREMENT FIRST ORDER BY skwx_content.created ASC,
ADD PRIMARY KEY (newid);
ALTER TABLE skwx_content CHANGE newid id INT(10);
hata alıyorum: puu.sh/ohBAC/c3a8b12340.png
Merhaba, sorguyu doğru olarak çalıştırıyorum mu? Resimde görüldüğü gibi bir hata alıyorum. Ayrıca param ve kullanıcı tanımlı değişkenler hakkında bir referansı da bağlayabilir misiniz? http://prntscr.com/as02qi – Roys
Merhaba, denedim ve bu kimliğin zaten yabancı anahtar için var olduğunu söyleyen bir hata verdi. "" PRIMARY "anahtar için" 3 'girişini kopyala ". Gönderiye bir düzenleme ekledim, lütfen kod sorgusuna bakın. – Roys
Merhaba, Sorgu çalıştı ve kimlik oluşturulan tarihin kronolojik sırasına göre! Birincil anahtarı sıfırlamak için bir yol var mı, böylece bir önceki maksimum ID yerine 1 tanesinde başlıyor? – Roys