Mevcut en yüksek değerden daha düşük otomobil artışını ayarlama?

5 Cevap php

Ben bir otomatik artım Kimliği alanına sahip bir MySQL tablo var. Ben (yaklaşık 4 milyon kadar başlayarak) kendine özgü kimliği olan, tek bir kaynaktan gelen verilerle tablo dolduruyorum. Ben de kendi veri eklemek istiyorum ama veritabanında zaten kimlikleri ile çatışma istemiyoruz.

İdeal Ben sadece bir alt kimliği de hepsini takın ediyorum. Ancak, benim kontrolü dışında bir işlevi kullanmak zorunda (dahili Joomla fonksiyonu) ID 0 ise yeni bir satır eklemek, ama denemek ve başka herhangi bir numara eğer güncelleme hangi.

Ben denemek ve 1 ve kimlik yeni bir satır eklemek Yani açıkçası, o yok 1 kimliği ile satır güncellemek için çalışacağız. Yani hiçbir veri takılı alır.

Ben akımı max kimliği daha otomatik artış değeri düşük ayar denedim ama çalışmıyor. Benim sorunun başka bir çözüm var mı?

UPDATE: sorumu denemek ve açıklamak için, ben (4 milyon ve artan itibaren) bir yüksek kimliği ile başka bir kaynaktan veri var. Ben 1'den, düşük ID ile satır eklemek ve yukarı (dış kaynak bu çakışacak değil) istiyorum. Ancak, yukarıda açıklanan nedenlerden dolayı, ben sadece sıfır kullanmak veya bazı başka çözüm bulmak için ya var, kullanılmayan düşük kimliğini bulmak ve bunu kullanamazsın.

5 Cevap

Ben bir çözüm buldum: farklı bir alanda dış kimliklerini saklamak!

Dış kaynaktan geliyor kimlikleri şimdi "extid" alanında saklanır, bu yüzden ben (kendi güncellenmesi için) bu alanda bir kontrol tutabilirsiniz. Ben ana ID alanı çeşitli yerlerde makalelere başvurmak için kullanabileceğiniz bir otomatik artan birincil anahtar, yaptı.

Eğer diğer veritabanından kimliklerini korumak için çalışıyoruz? Eğer öyleyse, nasıl bir toplu ekleme hakkında mysqldump?

Aksi halde, neden sadece otomatik artış işi yapalım değil mi?

Eğer son eklenen id almak için çalışıyorsunuz? Eğer öyleyse, sizin mantık içine koyabilirsiniz:

SELECT LAST_INSERT_ID() as last_id

Ve son eklenen kimliği almak ve yeni kayıt koymak için kullanabilirsiniz.

Bahsettiğiniz fonksiyonu ise JTable::store(), sen JTable, sonra istediğiniz şekilde davranmaya store() işlevi yazmak uzanan bir sınıf oluşturmak olabilir.

Programlı yapmak gerekir ve tablo otomatik artış kimliğe sahip olduğu gerçeğini atlamak gibi geliyor. Eğer boş bir satır bulmak ve sonra el yerine otomatik artış güvenmek satır-id olarak belirtmek kadar programlı olarak satır # 1 saymaya başlamak istiyorum.