Tablom da ki verilerde silme işlemi yapınca diyelim ki 4 ile 7 arasında ki verileri sildim, doğal olarak "id=3" den hemen sonra "id=8" olan satır gelecek tabloda. İşte ben burda "id=8" in "id=4" olmasını istiyorum silme işlemi yapınca otomatik olarak o değeri kendine vermesini.Böyle bir şey mümkün mü ?

soruldu: 05 Eyl '13, 16:50

Amadeus's gravatar image

Amadeus
357121721
cevap kabul oranı: 31%

değiştirildi: 06 Eyl '13, 01:54

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


Eger yeni vereceginiz id degeri veritabaninda table'da bossa yeni auto increment degerini setleyebilirsiniz.


# mysql icin
ALTER TABLE TABLE_ADI AUTO_INCREMENT=4;

# postgresql icin
ALTER SEQUENCE TABLE_SEQUENCE_ADI RESTART WITH 4;

Eger bu islemi yazdiginiz proje icinde her delete isleminden sonra yapmak istiyorsaniz kullandiginiz dil ile (ornegin Java'da => JDBC, Hibernate, EclipseLink ile) yukaridaki kodlari sql query olarak calistirabilirsiniz.

permanent link

cevaplandı: 06 Eyl '13, 01:51

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

değiştirildi: 06 Eyl '13, 01:54

Teşekkür ederim,sanırım bu işe yaradı.

(06 Eyl '13, 09:19) Amadeus Amadeus's gravatar image

merhaba bunun mumkun oldugunu zannetmiyorum eger tablodaki tum verileri sildiysen

TRUNCATE TABLE tabloadi

yaparak id degerini resetleyebilirsin ama

id degerinden aldigin degeri farkli bir kolondan alman daha mantikli geliyor bana

permanent link

cevaplandı: 05 Eyl '13, 20:17

essp's gravatar image

essp
181239
cevap kabul oranı: 30%

değiştirildi: 05 Eyl '13, 20:29

Teşekkür ederim ilginiz için fakat kayıtların tamamını genellikle silmiyorum, where ifadelerim var Truncate'i kullanmak pek işlevsel olmayacaktır.

(06 Eyl '13, 09:11) Amadeus Amadeus's gravatar image

Merhabalar,

databaslerin kendine özel commandlari var. Örnegin id islemini autoincrement olarak degilde, kendin gerceklestirmek istiyorsan söyle yapabilirsin.

set identity_insert ISIM ON
.... isleml
set identity_insert ISIM OFF

Selamlar

permanent link

cevaplandı: 06 Eyl '13, 02:09

mahmut_can's gravatar image

mahmut_can ♦
2.9k62552
cevap kabul oranı: 67%

Teşekkür ederim fakat autoincrement olarak tanımlı kalmasını istiyorum.

(06 Eyl '13, 09:21) Amadeus Amadeus's gravatar image

Merhabalar.

Bu bahsettiğiniz işlem BEN DAHİL bir çok programcının yeni başladığında yaptığı bir hatadır. ID alanlarına anlamlı veriler koymak ve/veya onları kullanıcya göstermek yanlış bir yaklaşımdır. ID alanının amacı sadece verileri eşleştirmektir.

Diğer alanlar için ise şöyle bir yaklaşıma gidebilirsiniz. Kullanıcıya max+1 numarayı önerirsiniz o isterse değiştirir. Boşlukları isterse doldurur.

Başka bir alternatif olarak tek bir sorgu ile arada boş olan yerleri bulup onları önerebilirsiniz.

permanent link

cevaplandı: 06 Eyl '13, 03:23

myururdurmaz's gravatar image

myururdurmaz
2.2k11027
cevap kabul oranı: 23%

Teşekkür ederim fakat 'id' kısmını kullanıcıya göstermiyorum sadece +1 artışla sıralanmış id değerlerine ihtiyacım vardı extra bir durum için.Diğer önerinizi benzer durumlarda dikkate alacağım,teşekkürler.

(06 Eyl '13, 09:24) Amadeus Amadeus's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×77
×66

Soruldu: 05 Eyl '13, 16:50

Görüntüleme: 911 kez

Son güncelleme: 06 Eyl '13, 09:24

powered by BitNami OSQA