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

İSİM

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

KULLANIM

       CREATE [ TEMPORARY | TEMP ] SEQUENCE isim [ INCREMENT [ BY ] art ]
           [ MINVALUE asgarideer | NO MINVALUE ]
           [ MAXVALUE azami_deer | NO MAXVALUE ]
           [ START [ WITH ] balang ]
           [ CACHE kayt_says ] [ [ 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.

       asgarideer, NO MINVALUE
              İsteğe bağlı MINVALUE  asgarideer  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_deer, NO MAXVALUE
              İsteğe bağlı MAXVALUE  azami_deer  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.

       balang
              İsteğe bağlı  START  WITH  balang   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 asgarideer, azalan değerli
              bir liste için azami_deer'dir.

       satr_says
              İsteğe  bağlı  CACHE  satr_says 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_deer,
              azalan   değerli  bir  listede  asgarideer  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   kayt_says  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
       kayt_says-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,  kayt_says
       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,  kayt_says=1  değeri
       için  döndürülen  nextval  değerleri bir sıra takip ederken 1'den büyük
       kayt_says  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