PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Membuat urutan PostgreSQL ke bidang (yang bukan ID catatan)

Gunakan CREATE SEQUENCE :

CREATE SEQUENCE scores_job_id_seq;  -- = default name for plain a serial

Kemudian tambahkan kolom default ke scores.job_id :

ALTER TABLE scores ALTER COLUMN job_id SET DEFAULT nextval('scores_job_id_seq');

Jika Anda ingin mengikat urutan ke kolom (jadi dihapus saat kolom dihapus), jalankan juga:

ALTER SEQUENCE scores_job_id_seq OWNED BY scores.job_id;

Semua ini dapat diganti dengan menggunakan tipe data semu serial untuk kolom job_id untuk memulai dengan:

  • Mengganti nama tabel dengan aman dan rapi yang menggunakan kolom kunci utama serial di Postgres?

Jika tabel Anda sudah memiliki baris, Anda mungkin ingin mengatur SEQUENCE ke nilai tertinggi berikutnya dan isi nilai serial yang hilang dalam tabel:

SELECT setval('scores_job_id_seq', COALESCE(max(job_id), 1)) FROM scores;

Opsional:

UPDATE scores
SET    job_id = nextval('scores_job_id_seq')
WHERE  job_id IS NULL;
  • Cara memeriksa urutan secara efisien untuk nilai yang digunakan dan tidak digunakan di PostgreSQL
  • Postgres mengubah urutan secara manual
  • Bagaimana cara mengatur ulang urutan kunci utama postgres ketika tidak sinkron?

Satu-satunya perbedaan yang tersisa, serial kolom juga disetel ke NOT NULL . Anda mungkin juga menginginkannya atau tidak:

ALTER TABLE scores ALTER COLUMN job_id SET NOT NULL;

Tapi kamu tidak bisa cukup ubah jenis integer yang ada :

ALTER TABLE scores ALTER job_id TYPE serial;

serial bukan tipe data yang sebenarnya. Ini hanyalah fitur kemudahan notasi untuk CREATE TABLE .
Dalam Postgres 10 atau yang lebih baru, pertimbangkan sebuah IDENTITY kolom:

  • Kolom tabel kenaikan otomatis


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Anda perlu menginstal postgresql-server-dev-X.Y untuk membangun ekstensi sisi server atau libpq-dev untuk membangun aplikasi sisi klien

  2. Tabel dan indeks vs. HDD dan SSD

  3. Bagaimana cara menginstal Haproxy dan Keepalive

  4. Sisipkan gambar di database postgresql

  5. cara memeriksa jenis nilai di postgres