19 Ekim 2012 Cuma

PL SQL Sequence Kulllanımı (Identity Column)

Oracle'da Otomotik Artan Kolon Oluşturmak (Sequence)

Bu makalemizde sizlere oracle'da otomatik olarak değeri artan veya azlan bir kolon nasıl oluşturulur bunu anlatmaya çalışacağız.Ms SQL 'deki IdentityColumn'a benzetebiliriz bunu.

Oracle'da bir tablo oluşturmak istediğinizi düşünelim tabloyu create edecek scripti hazırladınız kolonlarını girdiniz ve her kayıt eklendiğinde kayda özel tekrar etmeyen datalardan oluşan bir kolon eklemek istiyorsunuz ve bu alanı tablonuzun PK alanı yaptığınızı varsayalım.Kolonu "PK" olarak işaretlediniz NOT NULL dediniz fakat otomatik artırma olayını nasıl yapacaksınız bunu bulamadınız.

İşte bu noktada MS SQL veya MySQL'de olsa kolonu oluştururken bu kolon otomatik olarak artacak check'ini işaretlerdiniz ve tabloya kayıt eklendikçe bu kolon değeri otomatik olarak artardı.Fakat oracle'da kolonları oluştururken bu kolon otomatik olarak artsın diye bir check yok bu operasyonu manuel olarak yönetip Sequence kullanmanız gerekecektir.

MySQL AutoIncrement Kolon Değerini Çekmek (LAST_INSERT_ID() Fonksiyonu)

MySQL LAST_INSERT_ID()  Fonksiyonu Nedir ?


Arkadaşlar uzunca bi aradan sonra nihayet bloğum da yeni paylaşımlar yapmak için geri döndüm :)
Maalesef iş dünyasının yorucu ve yoğun çalışma ortamına kendinizi bi kez kaptırdınızmı kafanızı kaldırmanız pek de kolay olmuyor :) neyse konumuza geri dönelim nedir bu fonksiyon ve nasıl kullanılır ?

Arkadaşlar bu fonksiyon'u kullanabilmek için öncelikle bir Insert işlemi gerçekleştirmeniz gerekmektedir. Insert işlemi sonrası kayıt eklenen tablodaki "Auto Increment" özelliği true olan Primery Key kolonunuzun değerini almak için bu fonksiyonu kullanabiliriz.

Yani MsSQL'deki Insert işlemi sonrası doldurulan  (alt gr+q)(alt gr+q)identity değişkeni ne işe yarıyorsa bu fonksiyonda o işe yarıyor
veya
Oracle kullananların bildiği tabloda otomatik artan kolon oluşturmak için kullanılan sequence'lerin insert işlemi sonrası oluşan değerini almak için kullanılan "SEQUENCE_NAME".CURRVAL kullanımı gibi.