PostgreSQL GENERATED ALWAYS ile SERIAL farkı

Hemen hemen her tablo oluşturan kişinin dikkatini çeken şeylerden birisidir. serial veri tipi önceden beri kullanılan veri tiplerinden birisidir fakat SQL standartı değildir.

Postgresql 10 sürümü ile gelen generated as identity  sql standartlarına uygundur.

 

create table t1 (id serial primary key);
create table t2 (id integer primary key generated always as identity);

Serial veri tipinde manuel olarak veri girilirken generated always de parametre verilmeden veri girilememektedir.

Örnek ile devam edelim:

Aynı kolonlara sahip iki ayrı veri tipleri ile iki ayrı kolon  oluşturalım.

create table t1 (id serial primary key);

create table t2 (id integer primary key generated always as identity);

Tablolarımıza sırayla insert yapalım.

Yukarıdaki gibi t1 tablomuza veri eklendi.

Aynı değeri t2 tablomuza insert etmeye çalışalım.

T2 tablomuzda hata verdi bunun sebebi genereated always parametresini eklediğinizde dışarıdan veri girişine izin vermemesidir ama benim kesinlikle etmem lazım derseniz aşağıdaki şekilde insert edebilirsiniz.

insert into t2 (id) overriding system value values (1) ;

 

 15 total views,  1 views today

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa