Provided by: manpages-tr_1.0.5.1-2_all bug

İSİM

       CREATE SEQUENCE - yeni bir kayıt listesi üreteci tanımlar

KULLANIM

       CREATE [ TEMPORARY | TEMP ] SEQUENCE isim [ INCREMENT [ BY ] artış ]
           [ MINVALUE asgarideğer | NO MINVALUE ]
           [ MAXVALUE azami_değer | NO MAXVALUE ]
           [ START [ WITH ] başlangıç ]
           [ CACHE kayıt_sayısı ] [ [ NO ] CYCLE ]

AÇIKLAMA

       CREATE  SEQUENCE  yeni  bir  kayıt listesi üreteci oluşturur. Bunu isim isimli yeni bir özel tek satırlık
       tabloyu oluşturarak ve ilklendirirerek yapar. Komutu kullanan üretecin sahibi olur.

       Bir şema ismi verilmişse, kayıt listesi belirtilen şemada  oluşturulur.  Aksi  takdirde,  o  anki  şemada
       oluşturulur.  Geçici kayıt listeleri özel bir şema içinde mevcuttur, dolayısıyla bir geçici kayıt listesi
       oluştururken bir şema ismi belirtilmemelidir.  Satır  listesinin  ismi  aynı  şemadaki  başka  bir  kayıt
       listesi, tablo, indeks ya da sanal tablo ile çakışmayacak şekilde seçilmelidir.

       Bir  kayıt  listesi  oluşturulduktan  sonra,  üzerinde  nextval,  currval  ve  setval işlevleri ile işlem
       yapabilirsiniz.                     Bu                     işlevlerin                      açıklamalarını
       http://belgeler.org/uygulamalar/pgsql/pgsql-functions-sequence.html adresinde bulabilirsiniz.

       Bir  kayıt listesini doğrudan göncelleyemezsiniz, bir kayıt listesinin o anki durumunu ve parametrelerini
       incelemek için şöyle bir sorgu kullanabilirsiniz:

           SELECT * FROM isim;

       Kısmen, kayıt listesinin last_value alanı herhangi bir oturum tarafından ayrılmış  son  değeri  gösterir.
       (Şüphesiz, başka oturumlar o an nextval çağrıları yapıyorsa, aldığınız değer atıl olmuş olabilir.)

PARAMETRELER

       TEMPORARY veya TEMP
              Belirtilmişse,  kayıt listesi nesnesi sadece bu oturum için oluşturulur ve oturum sonunda silinir.
              Aynı isimdeki kalıcı kayıt listelerinin  varlığı  durumunda,  bunlara  şema  nitelemeli  isimlerle
              erişilmedikçe, geçici şemanın varlığı durumunda görünür olmazlar.

       isim   Oluşturulacak kayıt listesinin ismi (şema nitelemeli olabilir).

       artış  İsteğe  bağlı  INCREMENT  BY  artış  deyimi,   yeni  değeri  oluşturmak üzere o anki sıra değerine
              eklenecek değeri belirtmek için kullanılır. Bir pozitif değer bir artan değerli liste, negatif bir
              değer ise azalan değerli bir liste oluşturacaktır. Öntanımlı değer 1'dir.

       asgarideğer, NO MINVALUE
              İsteğe bağlı MINVALUE asgarideğer deyimi  üretilen  bir  kayıt  listesinin  asgari  sıra  değerini
              belirlemekte  kullanılır.  Belirtilmezse  ya  da  NO MINVALUE  belirtilirse, öntanımlı sıra değeri
              kullanılır. Öntanımlı değer artan değerli bir liste için 1, azalan değerli bir liste için 2-1'dir.

       azami_değer, NO MAXVALUE
              İsteğe bağlı MAXVALUE azami_değer  deyimi  üretilen  bir  kayıt  listesinin  azami  sıra  değerini
              belirlemekte  kullanılır.  Belirtilmezse  ya  da  NO MAXVALUE  belirtilirse, öntanımlı sıra değeri
              kullanılır. Öntanımlı değer artan değerli bir liste  için  2-1,  azalan  değerli  bir  liste  için
              -1'dir.

       başlangıç
              İsteğe bağlı START WITH başlangıç  deyimi kayıt listesinin başlangıcını belirtmek için kullanılır.
              Öntanımlı  başlangıç  değeri,  artan  değerli bir liste için asgarideğer, azalan değerli bir liste
              için azami_değer'dir.

       satır_sayısı
              İsteğe bağlı CACHE satır_sayısı deyimi daha  hızlı  erişim  için  sıralı  listeyi  saklamak  üzere
              bellekte yer ayrılmasını ve ilklendirilmesini sağlar. En az değer 1'dir ve bu ayrıca öntanımlıdır.

       CYCLE, NO CYCLE
              CYCLE  seçeneği, artan bir değerli bir listede azami_değer, azalan değerli bir listede asgarideğer
              aşıldığında tekrar başlangıca dönülmesini sağlar.

              NO  CYCLE  belirtilmişse,  bir  nextval  çağrısı  bir  listenin  sonunda  yapıldığında  bir   hata
              döndürecektir. Ne CYCLE ne de NO CYCLE belirtilmişse, NO CYCLE öntanımlıdır.

EK BİLGİ

       Bir kayıt listesini silmek için DROP SEQUENCE kullanın.

       Satır  listeleri bigint aritmetiğine tabidirler, dolayısıyla listedeki satır sayısı sekiz baytlık tamsayı
       genişliğini (-9223372036854775808 .. 9223372036854775807) aşamaz. Bazı eski platformlarda  sekiz  baytlık
       tamsayılara  derleyici  desteği  olmadığından  mecburen  integer  aritmetiği  (-2147483648 .. +2147483647
       aralığı) kullanılır.

       Çok sayıda oturum tarafından ortaklaşa kullanılacak bir kayıt  listesi  için   kayıt_sayısı  1'den  büyük
       seçilirse,  umulmadık sonuçlar ortaya çıkabilir. Herhangi bir oturum bu sıralama değişkenine eriştiği her
       bir defa için bir dizi değere yer ayırıp, orada saklar ve sıralama nesnesine ait  last_value değerini bir
       artırır. Bundan sonraki kayıt_sayısı-1 defalık erişimde mevcut kayıt listesine dokunmadan  değerler  için
       önceden ayrılmış yerler kullanılır. Ayrılmış ama kullanılmamış yerler var ise bunlar boşa gider ve oturum
       bittiğinde kayıt listesinde boşluklar kalmış olur.

       Bunun  yanında  farklı  oturumlar  için  farklı  sıralama değerleri belirlenmesi garanti edilmiş olmasına
       rağmen bütün oturumlar dikkate alındığında bunlar bir sıra takip etmeyebilir. Örneğin, kayıt_sayısı  için
       10  belirtilmiş  olsun, A oturumu 1 den 10 a kadar sıra değeri ayırmış ve nextval=1 döndürmüş olsun. Daha
       sonra B oturumu da 11 den 20 ye kadar sıra değeri  ayırmış  olsun  ve  A  oturumunun  değer  döndürmesini
       beklemeden  nextval=11  döndürmüş  olsun. Burada, kayıt_sayısı=1 değeri için döndürülen nextval değerleri
       bir sıra takip ederken 1'den büyük kayıt_sayısı değerleri  için  bu  garanti  edilemez,  sadece  üretilen
       değerlerin  birbirinden  farklı değerler olacakları garanti edilebilir. Ayrıca last_value değeri de henüz
       nextval tarafından döndürülmüş olmasa da herhangi bir oturum tarafından ayrılmış son değeri içerir.

       Diğer bir önemli husus, ayrılarak belleğe alınmış değerler kullanılana kadar  üzerinde  setval  uygulanan
       bir oturumun diğer oturumlar tarafından uyarılmayacağıdır.

ÖRNEKLER

       101'den başlayacak ve artan sıralı olacak serial isimli kayıt listesininin oluşturulması:

           CREATE SEQUENCE serial START 101;

       Bir kayıt listesinden sonraki kaydın seçilmesi:

           SELECT nextval('serial');

           nextval
           ---------
               114

       Bu kayıt listesinin bir INSERT cümlesinde kullanılması:

           INSERT INTO distributors VALUES (nextval('serial'), 'nothing');

       Kayıt listesi değerinin bir COPY FROM sonrasında güncellenmesi:

           BEGIN;
           COPY distributors FROM 'input_file';
           SELECT setval('serial', max(id)) FROM distributors;
           END;

UYUMLULUK

       CREATE SEQUENCE, SQL:2003'de belirtilmiştir. PostgreSQL aşağıdaki durumlar dışında standartla uyumludur:
       ·      Standardın AS <veri türü> ifadesi desteklenmemektedir.

       ·      Sonraki değerin sağlanması, standardın NEXT VALUE FOR ifadesi yerine nextval() işlevi kullanılarak
              yapılır.

ÇEVİREN

       Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Mart 2005

PostgreSQL                                                                                    CREATE SEQUENCE(7)