Perşembe, 15 Aralık 2016 06:57

SQLite Autoincrement

Yazan 
Öğeyi Oyla
(0 oy)

SQLite Autoincrement

SQLite otomatik arttırma özelliği mysql gibi diğer veritabanı ortamlarına göre biraz farklılık gösteriyor. SQLite üzerinde AUTOINCREMENT anahtarı veritabanı motorunda bellek, işlemci aşırı disk yazma işlemi gibi pahalı işlemlere sebebiyet verdiği için SQLite duruma biraz farklı yaklaşmış. SQLite da öntanımlı olarak oluşturulan ROWID aslında Autoincrement gibi çalışyor yalnızca bir farkla. Otomatik olarak artan bu tam sayı tipindeki kolon bazı satırların silinmesi ile fark ortaya çıkar. Normalde AUTOINCREMENT anahtarına sahip bir alan silinmiş alanın değerini almaz. Fakat ROWID de ise durum farklı. Silinmiş bir değeri otomatik olarak alır. Fakat bu silinmiş değerlerden otomatik değer seçme durumu ancak ROWID değerinin 9223372036854775807 değeri olan 64 bit verilebilecek en büyük INTEGER değerine ulaşması ile verilir. Yani normal şartlarda bu değere ulaşılmadığı takdirde AUTOINCREMENT alanına gerek duymayabiliriz. Eğer tüm pozitif değerler biterse bu durumda SQLITE_FULL hatası oluşur. Aşağıda en yüksek değere ulaşıldıktan sonra nasıl otomatik değerler seçildiğini görebilirsiniz.

Normalde ROWID alanı isimleştirilmemiş olduğu için tablo listelemelerinde göremezsiniz. Bunun için özellikle seçmeniz gerekebilir. Yada PRIMARY KEY INTEGER bir alan açarsanız bu alanda otomatik olarak rowid değeri için takma ad olur.

Daha fazla bilgi için bu dokümanı inceleyebilirsiniz.

Okunma 8447 defa Son Düzenlenme Perşembe, 15 Aralık 2016 08:17
Ufuk Yıldırım

Yazılım Geliştirme Uzmanı

Web site: www.ufuk.biz

Yorum Ekle

Gerekli olan (*) işaretli alanlara gerekli bilgileri girdiğinizden emin olun. HTML kod izni yoktur.