9 Temmuz 2018 Pazartesi

CREATE SEQUENCE

Giriş
Her session test_seq.nextval çağrısı yapınca n tane değer çeker.

Örnek
Şöyle yaparız.
CREATE SEQUENCE test_seq
      INCREMENT BY 1
      START WITH 1
      NOMAXVALUE
      NOCYCLE
      CACHE 10;
CYCLE Alanı
Örnek
Şöyle yaparız. Sayı MINVALUE ve MAXVALUE arasında dolaşır ve başa döner.
CREATE SEQUENCE test_seq ALO
      MINVALUE 1
      INCREMENT BY 1
      START WITH 1
      MAXVALUE 2147483645
      CYCLE;
CURVAL Alanı
Açıklaması şöyle.
If any of these locations contains references to both CURRVAL and NEXTVAL, then Oracle increments the sequence and returns the same value for both NEXTVAL.
Elimizde şöyle bir kod olsun
INSERT INTO questions(id, value) VALUES(my_seq.NEXTVAL, p_question); //1

INSERT INTO DEPENDENCIES(parent_question_id, child_question_id) //2
VALUES (my_seq.CURRVAL, my_seq.NEXTVAL);
Çıktı olarak şunu alırız
my_seq.NEXTVAL = 2; //1
my_seq.CURRVAL = 3; //2
my_seq.NEXTVAL = 3;
NEXTVAL Alanı
Şöyle yaparız.
INSERT INTO questions(id, value) VALUES(my_seq.NEXTVAL, p_question);

Hiç yorum yok:

Yorum Gönder