Ana içeriğe atla

Oracle Sequence Mevcut Değeri Değiştirme

Sequence mantığı hemen hemen tüm ilişkisel veritabanlarında aynıdır ve bir birine benzer mekanizmayı esas alarak çalışır. Çalışma mantığı gereği de bir değere eşitlenmesi çalışma ters olduğu için hemen hemen tüm veritabanları belirli bir değere eşitleme mekanizması içermez. 

Sequence mevcut değeri değiştirmek için kullanılan alternatif yöntemler vardır. Bunlardan en bilineni sequence'de bir sonraki değeri defalarca sorgulayarak sayısını artırmaktır. Ama örneğin 1000 değerinden 100000 değerine kadar bu işlemi yapmak maalesef imkansızdır. Bunun için alternatif diğer yöntem ise sequence artım değerini yükseltmek ve sequence istenilen değere gelene kadar bir sonraki değeri sorgulayıp en son terkar artım değerini bir yapmaktır.



Oracle da bize sequnce'i mevcut bir değerden başlatmak gibi bir olanak sunmaz. (Aslında sequence oluştururken bunu yapabiliyorsunuz. Ama burada kastettiğimiz var olan sequece'yi belirli bir değere yükseltmektir) Bunun için bu makalede sequence artım değerini yükselterek belirli bir değere getirip ondan sonra artım değerini bire eşitleyebileceğimiz sorguları size anlatacağım.

Konuyu daha iyi anlatabilmek açısından çokça karşılaşılan örnek bir senaryo ile başlayalım ve problemin ne olduğunu tam olarak ortaya koyarak problemi çözelim.

Örneğin bir tablo, ona uygun sequence oluşturdunuz. Ama tabloya değerleri sql sorgu ise değil de bir excel tablosundan insert ettiniz. Bu da doğal olarak sequence değerinin eski kalmasına ve tabloya doğal olarak yeni verilere yazamayacağınız anlamına gelecektir.

Öncelikle oracle'da sequence artım (increment) değerini yükseltmek için sorguyu yazalım.

Sorguda my_sequence isimli sequence'mizin artım değerini 1000 olarak belirliyoruz.

ALTER SEQUENCE my_sequence INCREMENT BY 1000;

Bir sonraki sorgumuzda nextval metodu ile sequence'den sorgulamalar yaparak istediğimiz değere yaklaşıncaya kadar sorguyu çalıştırıyoruz.

SELECT my_sequence.nextval FROM dual;

İstenilen değere gelene kadar sorgulama yaptıktan sonra artım değerini tekrar 1 olacak sorguyu yazıyoruz.

ALTER SEQUENCE my_sequence INCREMENT BY 1;

İsterseniz tekrar nextval metodunu çalıştırarak istediğiniz değere tam olarak getirebilirsiniz.

Küçük not: Tablolarda sequence bağlı değeri hangi değere eşitlemeniz gerektiğini bilmiyorsan MAX metodunu kullanarak o kolonun maksimum değerini bularak sequence'yi o değerden daha büyük bir değere eşitlemeniz daha doğrudur.

Bir Not daha: Bazı kişiler geliştiriciler fantazi olsun diye artım değerini -1 yaparak öneğin ID değerini giderek küçültürler. Bu sorguları artım değerini eksi yaparak da işlem yapabilirler. Yani eksi değerler de artım değeri olarak kullanılabilir ve aynı süreçler bu durum için de geçerlidir.

Yorumlar

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4