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

Nilai yang Dihasilkan di Postgres

Saya pikir jawaban yang diterima dari Petar tidak benar, atau tidak benar lagi. Peningkatan otomatis di Postgres ditangani melalui SERIAL tipe pseudo, itu benar. Namun, pemetaan yang diberikan Petar akan menghasilkan DDL berikut yang dihasilkan oleh Hibernate 5.1:

CREATE SEQUENCE users_id_seq START 1 INCREMENT 50;

CREATE TABLE … (
    id INT8 NOT NULL,
    …
);

Ini tidak menggunakan SERIAL , tetapi urutan terkelola Hibernate. Itu tidak dimiliki oleh tabel dan tidak ada nilai default yang ditetapkan. Tentu saja, pembuatan DDL adalah fitur yang tidak digunakan banyak orang dalam produksi (tetapi banyak yang menggunakan kode yang dihasilkan sebagai template).

Jika Anda menulis tangan DDL Anda dan benar-benar menggunakan SERIAL , lalu gunakan GenerationType.SEQUENCE bahkan mungkin bertentangan dengan perilaku database. Cara yang benar untuk memetakan Hibernate dengan strategi ID pilihan Postgres adalah menggunakan GenerationType.IDENTITY . Kebetulan, kodenya juga jauh lebih pendek dan lebih mudah dibaca:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Daftar tabel dalam skema PostgreSQL

  2. Cara Memilih Catatan dari 24 Jam Terakhir menggunakan PostgreSQL

  3. [Video] Integrasi Data dengan PostgreSQL

  4. Bagaimana cara menggunakan skema di Django?

  5. Bagaimana cara menggabungkan kolom dalam SELECT Postgres?