logo

PostgreSQL Seri

Bu bölümde çalışmasını anlayacağız. PostgreSQL Seri tanımlamamıza izin veren sözde tür otomatik artan sütunlar tablolarda. Ve ayrıca görüyoruz örnekler arasında PostgreSQL Seri sözde türü .

PostgreSQL Seri sözde türü nedir?

PostgreSQL'de, olarak bilinen belirli bir tür veritabanı nesne oluşturucumuz var. Seri alışılmış olan bir Tamsayı dizisi oluştur olarak sıklıkla kullanılanlar Birincil anahtar bir tabloda.

Sıra, aşağıdakilerin yardımıyla oluşturulabilir: SERİ sözde türü Aşağıdaki komutta görebileceğimiz gibi yeni bir tablo oluştururken:

 CREATE TABLE table_name( ID SERIAL ); 

Aşağıdakileri sağlarsak PostgreSQL aşağıdakileri yapar: SERİ sözde türü -e İD kolon:

  • Öncelikle PostgreSQL bir dizi nesnesi oluşturacak ve ardından dizi tarafından oluşturulan bir sonraki değeri, belirli bir sütunun önceden tanımlanmış değeri olarak belirleyecektir.
  • Bundan sonra PostgreSQL, NOT NULL kısıtlaması -e Kimlik sütunu bir dizi her zaman bir tam sayı ürettiğinden boş olmayan değer .
  • Sonunda PostgreSQL, dizinin sahibini Kimlik sütunu; çıktı olarak, tablo veya tablo oluşturulduğunda sıra nesnesi kaldırılır. Kimlik sütunu Düşürüldü.

Not: Aşağıdaki komutların her ikisi de birbirine benzer olduğundan, Seri sözde türünü belirtmek için her iki komutu da kullanabiliriz.

 CREATE TABLE table_name( ID SERIAL ); 

 CREATE SEQUENCE table_name_ID_seq; CREATE TABLE table_name ( ID integer NOT NULL DEFAULT nextval('table_name_ID_seq') ); ALTER SEQUENCE table_name_ID_seq OWNED BY table_name.ID; 

PostgreSQL Seri sözde türü aşağıdaki gibi üç türe ayrılmıştır:

    KÜÇÜKSERİ SERİ BÜYÜK SERİ

Tüm bunları içeren aşağıdaki tabloya sahibiz: Seri sözde tip PostgreSQL tarafından desteklenen spesifikasyon:

İsim Depolama Boyutu Menzil
KÜÇÜKSERİ 2 bayt 1 ila 32767
SERİ 4 bayt 1 ila 2147483647
BÜYÜK SERİ 8 bayt 1 ila 9223372036854775807

PostgreSQL Seri sözde türünün sözdizimi

PostgreSQL'in sözdizimi Seri sözde tip aşağıdaki gibi:

 variable_name SERIAL 

PostgreSQL SERİ türü örnekleri

Nasıl yapıldığını anlamak için farklı örnekler görelim. PostgreSQL Seri sözde türü çalışır .

Not: SERIAL türü dolaylı olarak sütun üzerinde bir dizin oluşturmadığından veya sütunu birincil anahtar sütunu yapmadığından, SERIAL sütunu için PRIMARY KEY kısıtlamasını tanımlayabiliriz.

CREATE komutu yardımıyla yeni bir tablo oluşturuyoruz ve INSERT komutunu kullanarak bazı değerleri ekliyoruz.

Aşağıdaki örnekte, şunu kullanıyoruz: YARATMAK oluşturmak için komut Arabalar masanın içine Organizasyon veritabanı:

 CREATE TABLE Cars( Car_id SERIAL PRIMARY KEY, Car_name VARCHAR NOT NULL, Car_model VARCHAR NOT NULL ); 

Çıktı

Arabalar Aşağıdaki ekran görüntüsünde gösterildiği gibi, yukarıdaki komutlar yürütüldükten sonra tablo başarıyla oluşturuldu:

birleştirme java dizesi
PostgreSQL Seri

Bir kere Arabalar Tablo oluşturulduktan sonra INSERT komutunu kullanarak tabloya bazı değerler ekleyebiliriz. Ve şunu kullanabiliriz: VARSAYILAN INSERT komutundaki anahtar kelimeyi kullanın veya sütun adını atlayın (Car_id) .

 INSERT INTO Cars(Car_name, Car_model) VALUES('Porche','911 Carrera'); 

Çıktı

Yukarıdaki komutu uyguladıktan sonra aşağıdaki mesajı alacağız ve değer başarıyla Arabalar masa:

PostgreSQL Seri

VEYA Kullanmak VARSAYILAN Anahtar Kelime Sütun adıyla (Araba_id):

 INSERT INTO Cars(Car_id, Car_name, Car_model) VALUES(DEFAULT,'Audi','A8'); 

Çıktı

Yukarıdaki komutu uyguladığımızda aşağıdaki mesajı alacağız; değer başarıyla eklendi Arabalar masa:

PostgreSQL Seri

Yukarıdaki ekran görüntüsünde görebileceğimiz gibi PostgreSQL, Arabalar ile masa Araba_kimliği sütun değerleri 1 ve 2 .

Oluşturup ekledikten sonra Arabalar tablonun değerlerini kullanacağız SEÇME komut tüm satırları döndürür Arabalar masa:

 SELECT * FROM Cars; 

Çıktı

Yukarıdaki komutu başarıyla uyguladıktan sonra aşağıdaki sonucu elde edeceğiz:

PostgreSQL Seri

Şunu kullanabiliriz: pg_get_serial_sequence() bir dizi adını almak için işlev SERİ Aşağıdaki sözdiziminde görebileceğimiz gibi belirli bir tablodaki sütun:

 pg_get_serial_sequence('table_name','column_name') 

Almak için Mevcut değer Dizi tarafından oluşturulan bir dizi adını currval() fonksiyonuna aktarabiliriz.

Aşağıdaki örnekte kullandık eğrilik() tarafından üretilen geçerli değeri döndüren işlev Arabalar masa Car_id_seq nesne:

 SELECT currval(pg_get_serial_sequence('Cars', 'car_id')); 

Çıktı

Yukarıdaki komutu uyguladıktan sonra aşağıdaki çıktıyı alacağız:

PostgreSQL Seri

Şunu kullanabiliriz: GERİ DÖNÜYOR Car_id Tabloya yeni bir satır eklediğimizde dizi tarafından oluşturulan değerleri almak istiyorsak, INSERT komutuna yan tümceyi ekleyin.

Aşağıdaki komut yeni bir satır eklemek için kullanılır. Arabalar tablo ve için oluşturulan kayıtları döndürür Araba_kimliği kolon.

 INSERT INTO Cars(Car_name,Car_model) VALUES('Jaguar', 'XK') RETURNING Car_id; 

Çıktı

Yukarıdaki komutu çalıştırdığımızda aşağıdaki çıktıyı elde edeceğiz. Araba_kimliği gibi 3 :

PostgreSQL Seri

Not:

  • Yukarıda anladığımız gibi, sıra üreteci işlem işlem açısından güvenli değildir; bu da her kullanıcının farklı bir değer alacağı anlamına gelir iki paralel veritabanı varsa bağlantılar bir diziden sonraki değeri almaya çalışır.
  • Ve eğer o kullanıcının sıra numarası boşta kalacak ve sıralamada boşluk yaratacaktır. bir kullanıcı işlemi geri alabilir .

Örnek2

Öğrenmek için bir örnek daha görelim Seri sözde tip detayda.

Böylece yeni bir tablo daha oluşturacağız. sebzeler CREATE komutunun yardımıyla benzer bir tabloya dönüştürün. veri tabanı yani Organizasyon ile Veg_id olarak sütun SERİ sözde tip.

 CREATE TABLE Vegetables( Veggie_id SERIAL PRIMARY KEY, Veggie_name VARCHAR NOT NULL, Veggie_seasons VARCHAR NOT NULL ); 

Çıktı

sebzeler Aşağıdaki ekran görüntüsünde gösterildiği gibi yukarıdaki komutlar yürütüldükten sonra tablo başarıyla oluşturuldu:

PostgreSQL Seri

Bir kere sebzeler tablo oluşturulduysa, INSERT komutunu kullanarak içine bazı değerler ekleyeceğiz ve Veggies_id aşağıdaki komutta gösterildiği gibi sütun:

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Broccoli','Spring'); 

Çıktı

Yukarıdaki komutu uyguladığımızda aşağıdaki mesajı alacağız: değer başarıyla sebzeler masa.

PostgreSQL Seri

Veya şunu da kullanabiliriz: Varsayılan anahtar kelimeyi kullanır ve Veggie_id aşağıdaki komutta gösterildiği gibi sütun:

 INSERT INTO Vegetables (Veggie_id,Veggie_seasons, Veggie_seasons) VALUES(DEFAULT, 'Sweet Potatoes','Winter'); 

Çıktı

Yukarıdaki komutu yürüttükten sonra aşağıdaki mesajı alacağız; bu mesaj, aşağıdaki komutu kullanabileceğimizi söylüyor: Varsayılan anahtar kelime ya da sütun adını yoksay benzer bir çıktı elde edeceğiz:

PostgreSQL Seri

Bu nedenle, biraz daha değer ekleyeceğiz Arabalar aşağıdaki komutun yardımıyla tablo:

 INSERT INTO Vegetables(Veggie_name,Veggie_seasons) VALUES('Jalapeno Peppers','Fall'), ('Cucumbers','Summer'), ('Winter Squash','Winter'), ('Snow Peas','Spring'), ('Black Radish','All seasons'), ('Pumpkin','Fall'); 

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra, değerin başarılı bir şekilde eklendiğini gösteren aşağıdaki mesajı alacağız. sebzeler masa.

PostgreSQL Seri

Oluşturup ekledikten sonra sebzeler tablonun değerlerini kullanacağız SEÇME tüm satırları döndürme komutu sebzeler masa:

 SELECT * FROM Vegetables; 

Çıktı

Yukarıdaki komutu başarıyla uyguladıktan sonra aşağıdaki çıktıyı alacağız:

PostgreSQL Seri

Genel Bakış

İçinde PostgreSQL Seri sözde türü bölümünde çoğunlukla bir dizi oluşturmak için kullanılan Seri sözde tür işlevselliğini öğrendik. otomatik artışlar Belirli bir tablo için sütun değeri.