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

ISIM

       CREATE SEQUENCE - yeni bir kayit listesi ureteci tanimlar

KULLANIM

       CREATE [ TEMPORARY | TEMP ] SEQUENCE isim [ INCREMENT [ BY ] arti,s ]
           [ MINVALUE asgarideger | NO MINVALUE ]
           [ MAXVALUE azami_deger | NO MAXVALUE ]
           [ START [ WITH ] ba,slangi,c ]
           [ CACHE kayit_sayisi ] [ [ NO ] CYCLE ]

A,CIKLAMA

       CREATE  SEQUENCE  yeni  bir  kayit listesi ureteci olusturur. Bunu isim
       isimli  yeni   bir   ozel   tek   satirlik   tabloyu   olusturarak   ve
       ilklendirirerek yapar. Komutu kullanan uretecin sahibi olur.

       Bir  sema ismi verilmisse, kayit listesi belirtilen semada olusturulur.
       Aksi takdirde, o anki semada olusturulur. Gecici kayit  listeleri  ozel
       bir  sema  icinde  mevcuttur,  dolayisiyla  bir  gecici  kayit  listesi
       olustururken bir sema ismi  belirtilmemelidir.  Satir  listesinin  ismi
       ayni  semadaki baska bir kayit listesi, tablo, indeks ya da sanal tablo
       ile cakismayacak sekilde secilmelidir.

       Bir kayit listesi olusturulduktan sonra, uzerinde nextval,  currval  ve
       setval islevleri ile islem yapabilirsiniz. Bu islevlerin aciklamalarini
       http://belgeler.org/uygulamalar/pgsql/pgsql-functions-sequence.html
       adresinde bulabilirsiniz.

       Bir kayit listesini dogrudan goncelleyemezsiniz, bir kayit listesinin o
       anki  durumunu  ve  parametrelerini  incelemek  icin  soyle  bir  sorgu
       kullanabilirsiniz:

           SELECT * FROM isim;

       Kismen,   kayit   listesinin   last_value  alani  herhangi  bir  oturum
       tarafindan ayrilmis son degeri gosterir. (Suphesiz, baska  oturumlar  o
       an nextval cagrilari yapiyorsa, aldiginiz deger atil olmus olabilir.)

PARAMETRELER

       TEMPORARY veya TEMP
              Belirtilmisse,  kayit  listesi  nesnesi  sadece  bu  oturum icin
              olusturulur ve oturum  sonunda  silinir.  Ayni  isimdeki  kalici
              kayit  listelerinin  varligi  durumunda, bunlara sema nitelemeli
              isimlerle  erisilmedikce,  gecici  semanin   varligi   durumunda
              gorunur olmazlar.

       isim   Olusturulacak kayit listesinin ismi (sema nitelemeli olabilir).

       arti,s  Istege  bagli INCREMENT BY arti,s deyimi,  yeni degeri olusturmak
              uzere o anki  sira  degerine  eklenecek  degeri  belirtmek  icin
              kullanilir.  Bir  pozitif deger bir artan degerli liste, negatif
              bir deger ise azalan degerli bir liste olusturacaktir. Ontanimli
              deger 1'dir.

       asgarideger, NO MINVALUE
              Istege  bagli  MINVALUE  asgarideger  deyimi  uretilen bir kayit
              listesinin  asgari  sira   degerini   belirlemekte   kullanilir.
              Belirtilmezse  ya  da  NO MINVALUE  belirtilirse, ontanimli sira
              degeri kullanilir. Ontanimli deger artan degerli bir liste  icin
              1, azalan degerli bir liste icin 2-1'dir.

       azami_deger, NO MAXVALUE
              Istege  bagli  MAXVALUE  azami_deger  deyimi  uretilen bir kayit
              listesinin  azami   sira   degerini   belirlemekte   kullanilir.
              Belirtilmezse  ya  da  NO MAXVALUE  belirtilirse, ontanimli sira
              degeri kullanilir. Ontanimli deger artan degerli bir liste  icin
              2-1, azalan degerli bir liste icin -1'dir.

       ba,slangi,c
              Istege  bagli  START  WITH  ba,slangi,c   deyimi  kayit listesinin
              baslangicini  belirtmek  icin  kullanilir.  Ontanimli  baslangic
              degeri, artan degerli bir liste icin asgarideger, azalan degerli
              bir liste icin azami_deger'dir.

       satir_sayisi
              Istege bagli CACHE satir_sayisi deyimi daha  hizli  erisim  icin
              sirali  listeyi  saklamak  uzere  bellekte  yer  ayrilmasini  ve
              ilklendirilmesini  saglar.  En  az  deger  1'dir  ve  bu  ayrica
              ontanimlidir.

       CYCLE, NO CYCLE
              CYCLE  secenegi,  artan  bir  degerli  bir  listede azami_deger,
              azalan  degerli  bir  listede  asgarideger  asildiginda   tekrar
              baslangica donulmesini saglar.

              NO CYCLE belirtilmisse, bir nextval cagrisi bir listenin sonunda
              yapildiginda bir hata dondurecektir. Ne CYCLE  ne  de  NO  CYCLE
              belirtilmisse, NO CYCLE ontanimlidir.

EK BILGI

       Bir kayit listesini silmek icin DROP SEQUENCE kullanin.

       Satir  listeleri  bigint aritmetigine tabidirler, dolayisiyla listedeki
       satir sayisi sekiz baytlik tamsayi genisligini (-9223372036854775808 ..
       9223372036854775807)  asamaz.  Bazi  eski  platformlarda  sekiz baytlik
       tamsayilara derleyici destegi olmadigindan mecburen integer  aritmetigi
       (-2147483648 .. +2147483647 araligi) kullanilir.

       Cok  sayida  oturum tarafindan ortaklasa kullanilacak bir kayit listesi
       icin  kayit_sayisi 1'den buyuk  secilirse,  umulmadik  sonuclar  ortaya
       cikabilir. Herhangi bir oturum bu siralama degiskenine eristigi her bir
       defa icin  bir  dizi  degere  yer  ayirip,  orada  saklar  ve  siralama
       nesnesine   ait    last_value  degerini  bir  artirir.  Bundan  sonraki
       kayit_sayisi-1  defalik  erisimde  mevcut  kayit  listesine  dokunmadan
       degerler   icin   onceden  ayrilmis  yerler  kullanilir.  Ayrilmis  ama
       kullanilmamis yerler var ise bunlar bosa  gider  ve  oturum  bittiginde
       kayit listesinde bosluklar kalmis olur.

       Bunun   yaninda   farkli   oturumlar  icin  farkli  siralama  degerleri
       belirlenmesi garanti edilmis olmasina ragmen  butun  oturumlar  dikkate
       alindiginda  bunlar  bir  sira takip etmeyebilir. Ornegin, kayit_sayisi
       icin 10 belirtilmis olsun, A oturumu 1  den  10  a  kadar  sira  degeri
       ayirmis ve nextval=1 dondurmus olsun. Daha sonra B oturumu da 11 den 20
       ye kadar sira degeri ayirmis olsun ve A oturumunun  deger  dondurmesini
       beklemeden  nextval=11  dondurmus  olsun. Burada, kayit_sayisi=1 degeri
       icin dondurulen nextval degerleri bir sira takip  ederken  1'den  buyuk
       kayit_sayisi  degerleri  icin  bu  garanti  edilemez,  sadece  uretilen
       degerlerin birbirinden farkli degerler olacaklari  garanti  edilebilir.
       Ayrica last_value degeri de henuz nextval tarafindan dondurulmus olmasa
       da herhangi bir oturum tarafindan ayrilmis son degeri icerir.

       Diger bir onemli husus, ayrilarak bellege alinmis degerler  kullanilana
       kadar uzerinde setval uygulanan bir oturumun diger oturumlar tarafindan
       uyarilmayacagidir.

"ORNEKLER

       101'den  baslayacak  ve  artan  sirali  olacak  serial   isimli   kayit
       listesininin olusturulmasi:

           CREATE SEQUENCE serial START 101;

       Bir kayit listesinden sonraki kaydin secilmesi:

           SELECT nextval('serial');

           nextval
           ---------
               114

       Bu kayit listesinin bir INSERT cumlesinde kullanilmasi:

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

       Kayit listesi degerinin bir COPY FROM sonrasinda guncellenmesi:

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

UYUMLULUK

       CREATE   SEQUENCE,  SQL:2003'de  belirtilmistir.  PostgreSQL  asagidaki
       durumlar disinda standartla uyumludur:
       .      Standardin AS <veri turu> ifadesi desteklenmemektedir.

       .      Sonraki degerin saglanmasi, standardin NEXT  VALUE  FOR  ifadesi
              yerine nextval() islevi kullanilarak yapilir.

,CEVIREN

       Nilgun Belma Buguner <nilgun (at) belgeler.gen.tr>, Mart 2005