Bagaimana cara menentukan bahwa kolom harus ditambahkan secara otomatis di pgAdmin?

14

Saya sudah mulai belajar pgAdmin III untuk mengelola database PostgreSQL. Tapi itu bukan aplikasi yang mudah digunakan.

Jika saya membuat atau telah membuat tabel dengan pgAdmin III, bagaimana saya bisa menambahkan "peningkatan otomatis" -fungsi pada id kolom yang memiliki tipe integer?

Jonas
sumber

Jawaban:

17

dua opsi: Gunakan "datatype" SERIAL atau buat urutan dan gunakan urutan ini sebagai nilai default untuk integer Anda:

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 *;
Frank Heikens
sumber
1
Jawaban ini bisa dimutakhirkan dengan memasukkan GENERATED BY DEFAULT AS IDENTITYdiperkenalkan dengan Postgres> = 10.
Madbreak
15

Jika Anda ingin melakukan ini di PGAdmin, itu jauh lebih mudah daripada menggunakan baris perintah. Tampaknya di PostgreSQL, untuk menambahkan kenaikan otomatis ke kolom, pertama-tama kita harus membuat urutan kenaikan otomatis dan menambahkannya ke kolom yang diperlukan. Saya memang suka ini.

1) Pertama, Anda perlu memastikan ada kunci utama untuk tabel Anda. Juga simpan tipe data kunci utama dalam bigint atau smallint. (Saya menggunakan bigint, tidak dapat menemukan datatype yang disebut serial sebagaimana disebutkan dalam jawaban lain di tempat lain)

2) Kemudian tambahkan urutan dengan mengklik kanan pada urutan-> tambahkan urutan baru . Jika tidak ada data di tabel, biarkan urutannya seperti itu, jangan buat perubahan apa pun. Simpan saja. Jika ada data yang ada, tambahkan nilai terakhir atau tertinggi di kolom kunci utama ke nilai Sekarang di tab Definisi seperti yang ditunjukkan di bawah ini. masukkan deskripsi gambar di sini

3) Akhirnya, tambahkan baris nextval('your_sequence_name'::regclass)ke nilai Default di kunci utama Anda seperti yang ditunjukkan di bawah ini.

masukkan deskripsi gambar di sini Pastikan nama urutannya benar di sini. Ini semua dan peningkatan otomatis harus berfungsi.

toing_toing
sumber
4
Saya tidak setuju tentang "lebih mudah di PgAdmin". Anda pikir melalui klik lebih mudah daripada hanya membuat kolom SERIAL?
ypercubeᵀᴹ
1
Haruskah saya mengatakan lebih mudah bagi mereka yang terbiasa dengan GUI dan Jika Anda tidak terbiasa dengan baris perintah. :)
toing_toing