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