Vider la base et insertion des nouvelle en commencant a 1
Résolu/Fermé
karango
karango
- Messages postés
- 76
- Date d'inscription
- vendredi 29 juillet 2016
- Statut
- Membre
- Dernière intervention
- 2 août 2021
karango
- Messages postés
- 76
- Date d'inscription
- vendredi 29 juillet 2016
- Statut
- Membre
- Dernière intervention
- 2 août 2021
A voir également:
- Vider la base et insertion des nouvelle en commencant a 1
- Vider la base et insertion des nouvelle en commencant a 1 ✓ - Forum - PostgreSQL
- Excel supprimer lignes vides en bas ✓ - Forum - Excel
- EXCEL : Supprimer des lignes vides à la fin - Forum - Excel
- Vider une base de données ✓ - Forum - Delphi
- Moyenne avec insertion de nouvelle colonne ✓ - Forum - Bureautique
1 réponse
luckydu43
Modifié par luckydu43 le 9/08/2016 à 17:36
- Messages postés
- 3470
- Date d'inscription
- vendredi 9 janvier 2015
- Statut
- Membre
- Dernière intervention
- 30 juin 2022
Modifié par luckydu43 le 9/08/2016 à 17:36
Bonjour !
Avant d'aller plus loin, quelle est l'utilité de la chose ?
La gestion des id à l'air d'être auto-incrémentale, donc gérée automatiquement par le SGBD.
Même s'il y avait un moyen de customiser ça, sais-tu en quel type de variable est stocké un id ?
Réponse : très généralement un long ou un bigint selon le nommage.
La chose, c'est qu'un long peut correspondre à... 9 223 372 036 854 775 807
valeurs possibles. Autant dire que tu as de la marge.
Le projet informatique au taf est sur une très grosse base (une petite centaine de tables au bas mot) dont certaines tables contiennent 60 000 000 de tuples. Et... ça rentre large. Donc une table d'élèves...
Autrement, tu peux gérer ça, mais il te faut faire du traitement (qui ressemble à ça de manière TRES dégrossie :
INSERT INTO ELEVES ((SELECT MIN(e.ID)
FROM ELEVES e
GROUP BY e.ID
ORDER BY e.ID), tes champs....);
Le souci, c'est les perfs. Pour 1 000 000 d'élèves, tu peux commencer à voir le temps passer ;-)
M'enfin. Tu as là toutes les clés pour avancer. Soit tu fait la méthode sale, soit tu laisses le SGBD gérer à sa sauce.
Voir si cette façon de calculer peut être déportée dans un trigger pour gagner en temps de saisie des ajouts d'éléments ;-)
Bonne journée !
Luc
Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
Avant d'aller plus loin, quelle est l'utilité de la chose ?
La gestion des id à l'air d'être auto-incrémentale, donc gérée automatiquement par le SGBD.
Même s'il y avait un moyen de customiser ça, sais-tu en quel type de variable est stocké un id ?
Réponse : très généralement un long ou un bigint selon le nommage.
La chose, c'est qu'un long peut correspondre à... 9 223 372 036 854 775 807
valeurs possibles. Autant dire que tu as de la marge.
Le projet informatique au taf est sur une très grosse base (une petite centaine de tables au bas mot) dont certaines tables contiennent 60 000 000 de tuples. Et... ça rentre large. Donc une table d'élèves...
Autrement, tu peux gérer ça, mais il te faut faire du traitement (qui ressemble à ça de manière TRES dégrossie :
INSERT INTO ELEVES ((SELECT MIN(e.ID)
FROM ELEVES e
GROUP BY e.ID
ORDER BY e.ID), tes champs....);
Le souci, c'est les perfs. Pour 1 000 000 d'élèves, tu peux commencer à voir le temps passer ;-)
M'enfin. Tu as là toutes les clés pour avancer. Soit tu fait la méthode sale, soit tu laisses le SGBD gérer à sa sauce.
Voir si cette façon de calculer peut être déportée dans un trigger pour gagner en temps de saisie des ajouts d'éléments ;-)
Bonne journée !
Luc
Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
9 août 2016 à 17:54
9 août 2016 à 17:57
10 août 2016 à 12:28
10 août 2016 à 18:48
https://stackoverflow.com/questions/7718585/how-to-set-auto-increment-primary-key-in-postgresql
C'est la réponse "edited Nov 5 '12 at 14:36"
11 août 2016 à 11:13