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

SERIAL / peningkatan otomatis khusus per grup nilai

Ini telah ditanyakan berkali-kali dan ide umumnya pasti akan gagal di lingkungan multi-pengguna - dan sistem blog terdengar seperti kasusnya.

Jadi jawaban terbaiknya adalah:Jangan. Pertimbangkan pendekatan yang berbeda.

Letakkan kolom category_id sepenuhnya dari tabel Anda - itu tidak menyimpan informasi apa pun dari dua kolom lainnya (id, category) tidak akan menyimpannya.

id . Anda adalah serial kolom dan sudah bertambah secara otomatis dengan cara yang andal.

  • Fungsi SQL peningkatan otomatis

Jika Anda membutuhkan semacam category_id tanpa celah per category , buat dengan cepat dengan row_number() :

  • Nomor seri per grup baris untuk kunci majemuk


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hasilkan nilai DEFAULT dalam CTE UPSERT menggunakan PostgreSQL 9.3

  2. Cara menginstal beberapa server PostgreSQL di RedHat Linux

  3. Django ConnectionAbortedError:[WinError 10053] Koneksi yang dibuat dibatalkan oleh perangkat lunak di mesin host Anda

  4. Mengapa akses array PostgreSQL jauh lebih cepat di C daripada di PL/pgSQL?

  5. Dapatkan baris N terakhir dalam database secara berurutan?