PgAdmin'de bir sütunun otomatik olarak artırılması gerektiğini nasıl belirleyebilirim?


15

Bir PostgreSQL veritabanı yönetmek için pgAdmin III öğrenmeye başladım. Ancak kullanımı kolay bir uygulama değildi.

PgAdmin III ile bir tablo oluşturduysam veya oluşturduysam, type integer olan bir sütun kimliğine "otomatik artış" işlevini nasıl ekleyebilirim?

Yanıtlar:


17

iki seçenek: "datatype" SERIAL işlevini kullanın veya bir dizi oluşturun ve bu diziyi tamsayı için varsayılan değer olarak kullanın:

CREATE SEQUENCE your_seq;
CREATE TABLE foo(
  id int default nextval('your_seq'::regclass),
  other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;

1
Bu yanıt GENERATED BY DEFAULT AS IDENTITYPostgres> = 10 ile tanıtılacak şekilde güncellenebilir
Madbreaks

15

Bunu PGAdmin'de yapmak istiyorsanız, komut satırını kullanmaktan çok daha kolaydır. PostgreSQL'de, bir sütuna otomatik artış eklemek için, önce bir otomatik artış sırası oluşturmamız ve bunu gerekli sütuna eklememiz gerekir. Bunu beğendim.

1) Öncelikle tablonuz için birincil anahtar olduğundan emin olmanız gerekir. Ayrıca birincil anahtarın veri türünü bigint veya smallint'te tutun. (Ben bigint kullandım, başka bir yerde diğer cevaplarda belirtildiği gibi seri adı verilen bir veri türü bulamadım)

2) Ardından sekansı sağ tıklatarak bir sekans ekleyin-> yeni sekans ekle . Tabloda veri yoksa, sırayı olduğu gibi bırakın, değişiklik yapmayın. Sadece kurtar. Mevcut veriler varsa, birincil anahtar sütunundaki son veya en yüksek değeri aşağıda gösterildiği gibi Tanımlar sekmesindeki Geçerli değere ekleyin. resim açıklamasını buraya girin

3) Son olarak, satırı nextval('your_sequence_name'::regclass)birincil anahtarınızdaki Varsayılan değerine aşağıda gösterildiği gibi ekleyin.

resim açıklamasını buraya girin Burada sıra adının doğru olduğundan emin olun. Hepsi bu ve otomatik artış işe yarayacak.


4
"PgAdmin'de daha kolay" fikrine katılmıyorum. Tıklamalardan geçmenin bir sütun yapmaktan daha kolay olduğunu SERIALmu düşünüyorsunuz ?
ypercubeᵀᴹ

1
GUI'lere alışkın olanlar için daha kolay diyeceğim ve komut satırlarına aşina değilseniz. :)
toing_toing
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.