• 01-04-2025, 09:49:27
    #1
    Merhaba arkadaşlar,
    Bir projem var SQLite kullanıyorum ekli olan verilerden ID numarasına göre silme yapıyorum mesala 1, 2, 3, 4, 5 tane veri var ben 3. ID'e ait veriyi sildiğimde 1, 2, 4, 5, oluyor normal sıralamaya devam etmiyor bunu sağlamak için ne yapabilirim?

    botDB.serialize(() => {
      botDB.run(`UPDATE Liste SET id = (SELECT COUNT(*) FROM Liste s WHERE s.id <= Liste.id)`);
      console.log("Liste ID'leri tekrar sıralandı!");
    });
    Delete işleminin içinde bunu yapıyorum bu tekrar sıralıyor ama daha kısa daha kolay bir yolu var mı?
  • 01-04-2025, 11:28:18
    #2
    AUTO INCREMENT tanımlanan tabloda bu şekilde yeniden sıralama yaptırmak sağlıklı bir şey değil onun yerine bir view oluşturup sanal bir id tanımlayıp onu kullanabilirsiniz fakat id ler gerçekte farklı olacağı için bu kezde update delete gibi işlemlerde sorun yaşarsınız neden böyle bir şeye ihtiyaç duyuyorsunuz ki

    //SQLite imiş mysql olarak yorumlamıştım
  • 01-04-2025, 11:34:32
    #3
    yusuf68700 adlı üyeden alıntı: mesajı görüntüle
    AUTO INCREMENT tanımlanan tabloda bu şekilde yeniden sıralama yaptırmak sağlıklı bir şey değil onun yerine bir view oluşturup sanal bir id tanımlayıp onu kullanabilirsiniz fakat id ler gerçekte farklı olacağı için bu kezde update delete gibi işlemlerde sorun yaşarsınız neden böyle bir şeye ihtiyaç duyuyorsunuz ki

    //SQLite imiş mysql olarak yorumlamıştım
    Listeleme yaparken seri halde olmasını istiyorum, mesala 1. id'i sildiğimde 2 den başlıyor aralardaki sayıları silince de çok absürt oluyor ondan dolayı.
    Bu kodda sorun yok istediğim gibi tekrar ID'leri sıralıyor ama farklı bir yol var ise onu öğrenmeyi çalışıyorum
  • 01-04-2025, 11:39:26
    #4
    ibr4him adlı üyeden alıntı: mesajı görüntüle
    Listeleme yaparken seri halde olmasını istiyorum, mesala 1. id'i sildiğimde 2 den başlıyor aralardaki sayıları silince de çok absürt oluyor ondan dolayı.
    Bu kodda sorun yok istediğim gibi tekrar ID'leri sıralıyor ama farklı bir yol var ise onu öğrenmeyi çalışıyorum
    sira diye bir column oluşturun bu işlemi orada yapın ID leri bu şekilde yeniden sıralamak sağlıksız bir çözüm hocam foreign key varmı bilmiyorum sql lite de fakat var ise ilişkileri bozabilirsiniz en sağlıklı çözüm ID göstermek yerine sira no göstermek bence sizin durumunuzda
  • 01-04-2025, 11:43:28
    #5
    yusuf68700 adlı üyeden alıntı: mesajı görüntüle
    sira diye bir column oluşturun bu işlemi orada yapın ID leri bu şekilde yeniden sıralamak sağlıksız bir çözüm hocam foreign key varmı bilmiyorum sql lite de fakat var ise ilişkileri bozabilirsiniz en sağlıklı çözüm ID göstermek yerine sira no göstermek bence sizin durumunuzda
    Listelemenin sonunda !sil ID olarak belirtiyorum kişi ID'e göre silebilsin diye, sizin dediğinizi yaparsam ID ile listelemede farklılık göstereceği için kişi farklı verileri silebilir.
    Şu an test ettiğim de bir hata vs. almadım ama yine testlerim sürüyor