PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

SERIAL personnalisé / auto-incrémentation par groupe de valeurs

Cela a été demandé à plusieurs reprises et l'idée générale est vouée à l'échec dans un environnement multi-utilisateurs - et un système de blog ressemble exactement à un tel cas.

La meilleure réponse est donc :Non. Envisagez une approche différente.

Supprimez la colonne category_id complètement de votre table - il ne stocke aucune information des deux autres colonnes (id, category) ne stockerait pas déjà.

Votre id est un serial colonne et s'incrémente déjà automatiquement de manière fiable.

  • Fonction SQL d'incrémentation automatique

Si vous avez besoin une sorte de category_id sans lacunes par category , générez-le à la volée avec row_number() :

  • Numéros de série par groupe de lignes pour la clé composée