[Résolu] Clef primaire décalé en autovaleur
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
[Résolu] Clef primaire décalé en autovaleur
Bonjour,
Il y a un an j'ai crée une base de données pour une bibliothèque associative.
Dans la table, j'ai plein de champs, mais pour résumer disons que j'ai:
-Référence roman
-Titre du livre
-Auteur
Référence roman, c'est un chiffre (type de champ [Integer]) qui me permet de retrouver les livres dans d'autres tables ou d'autres documents.
J'avais mis "auto-valeur" = Oui, pour ne pas avoir à m'embêter à rentrer les valeurs manuellement.
Et la clef primaire est sur ce "Réference Roman".
Bon.
Alors le problème est que j'ai entré 200 titres dans la base de données, et que là, je me suis rendu compte que -Zut!- il y en avait qui n'étaient plus réellement dans la bibliothèque (livres abimés, perdus, bref, mis hors circuits). Donc, croyant bien faire, je les ai supprimés de la base de données. J'aurai mieux fait de les remplacer par de nouvelles entrées, histoire que les références soit appliquées à des nouveaux livres entrant fraîchement dans la bibliothèque.
Parce que maintenant, quand je veux ajouter une nouvelle entrée, l'auto-valeur me met par exemple 280, alors qu'en réalité j'en suis à 250. Parce que j'ai supprimé une trentaine d'entrées. Donc, à chaque fois il faut que je corrige la valeur entrée dans Réference Roman (de 280 à 250 dans mon exemple). Du coup, ce n'est plus tellement une Auto-valeur puisque je me retape tout derrière manuellement....
Comment puis-je remédier à cela?
PS: - J'ai joint la base de données à ce message.
- Je ne suis pas un pro, j'ai potassé longuement de tutos pour arriver à faire cette base de données, c'était dur. Soyez indulgent et expliquez si possible les choses avec un langage pour débutant....
Merci énormément d'avance de votre aide et merci aux créateurs et modérateurs de ce forum!
Il y a un an j'ai crée une base de données pour une bibliothèque associative.
Dans la table, j'ai plein de champs, mais pour résumer disons que j'ai:
-Référence roman
-Titre du livre
-Auteur
Référence roman, c'est un chiffre (type de champ [Integer]) qui me permet de retrouver les livres dans d'autres tables ou d'autres documents.
J'avais mis "auto-valeur" = Oui, pour ne pas avoir à m'embêter à rentrer les valeurs manuellement.
Et la clef primaire est sur ce "Réference Roman".
Bon.
Alors le problème est que j'ai entré 200 titres dans la base de données, et que là, je me suis rendu compte que -Zut!- il y en avait qui n'étaient plus réellement dans la bibliothèque (livres abimés, perdus, bref, mis hors circuits). Donc, croyant bien faire, je les ai supprimés de la base de données. J'aurai mieux fait de les remplacer par de nouvelles entrées, histoire que les références soit appliquées à des nouveaux livres entrant fraîchement dans la bibliothèque.
Parce que maintenant, quand je veux ajouter une nouvelle entrée, l'auto-valeur me met par exemple 280, alors qu'en réalité j'en suis à 250. Parce que j'ai supprimé une trentaine d'entrées. Donc, à chaque fois il faut que je corrige la valeur entrée dans Réference Roman (de 280 à 250 dans mon exemple). Du coup, ce n'est plus tellement une Auto-valeur puisque je me retape tout derrière manuellement....
Comment puis-je remédier à cela?
PS: - J'ai joint la base de données à ce message.
- Je ne suis pas un pro, j'ai potassé longuement de tutos pour arriver à faire cette base de données, c'était dur. Soyez indulgent et expliquez si possible les choses avec un langage pour débutant....
Merci énormément d'avance de votre aide et merci aux créateurs et modérateurs de ce forum!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 09 sept. 2009 06:36, modifié 3 fois.
Raison : Ajout coche (balise présente)
Raison : Ajout coche (balise présente)
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Problème avec la clef primaire
Le phénomème décrit est normal. Les enregistrements ne sont pas réellement supprimés mais rayés. Il faut les libérer.coucou a écrit :Parce que maintenant, quand je veux ajouter une nouvelle entrée, l'auto-valeur me met par exemple 280, alors qu'en réalité j'en suis à 250. Parce que j'ai supprimé une trentaine d'entrées.
Une recherche sur le terme "autovaleur" me renvoie ce même problème : http://user.services.openoffice.org/fr/ ... autovaleur Tu y as exposé les commandes pour compresser ta base.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
Re: Clef primaire décalé en autovaleur
J'ai donc compacté la base avec
checkpoint defrag
et
shutdown compact
La base est beaucoup moins lourde, certes, mais le problème persiste. Peut-être n'ai-je pas bien compris les instructions?
checkpoint defrag
et
shutdown compact
La base est beaucoup moins lourde, certes, mais le problème persiste. Peut-être n'ai-je pas bien compris les instructions?
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3
-
Guylob
- Membre lOOyal

- Messages : 37
- Inscription : 21 juil. 2009 12:32
Re: Clef primaire décalé en autovaleur
tiens je suis intéressé de savoir aussi, j ai exactement le même problème qui ne se résout pas avec les 2 commandes
OpenOffice2.2 sous windows xp
OpenOffice 2.4 sous vista
OpenOffice 3.1 sous vista
OpenOffice 2.4 sous vista
OpenOffice 3.1 sous vista
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Clef primaire décalé en autovaleur
Bonjour,
Pour redémarrer la valeur initiale du champ Ref Roman de la Table Romans
la commande SQL est du type :
à lancer par le Menu : Outils > SQL
Ensuite, il faut actualiser la Table puis enregistrer la Base. À l'ouverture, les références sont à jour.
Pour redémarrer la valeur initiale du champ Ref Roman de la Table Romans
la commande SQL est du type :
Code : Tout sélectionner
ALTER TABLE "Romans" ALTER COLUMN "Ref Roman" RESTART WITH 1Ensuite, il faut actualiser la Table puis enregistrer la Base. À l'ouverture, les références sont à jour.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
Re: Clef primaire décalé en autovaleur
J'ai essayé, et voici ce qui se passe:
Après avoir entré la commande SQL, j'enregistre la base (soit dit en passant, je suis obligé de faire "enregistrer sous", puisque "enregistrer" est grisé, de même que l'icône disquette, comme si le fichier n'avait pas subi de changement...bizarre?), et je la ré-ouvre.
Ensuite je décide de mettre une nouvelle entrée dans la base pour voir si ça marche. Puis, lorsque je veux enregistrer l'entrée , j'ai le message d'erreur suivant:
Et si je clique sur OK, j'ai le second message suivant:
Euh...
Je crois que c'est pas gagné mon histoire....
Après avoir entré la commande SQL, j'enregistre la base (soit dit en passant, je suis obligé de faire "enregistrer sous", puisque "enregistrer" est grisé, de même que l'icône disquette, comme si le fichier n'avait pas subi de changement...bizarre?), et je la ré-ouvre.
Ensuite je décide de mettre une nouvelle entrée dans la base pour voir si ça marche. Puis, lorsque je veux enregistrer l'entrée , j'ai le message d'erreur suivant:
Et si je clique sur OK, j'ai le second message suivant:
Euh...
Je crois que c'est pas gagné mon histoire....
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Clef primaire décalé en autovaleur
Apparemment, le format numérique du champ Ref Roman est du type Standard avec 2 chiffres après la virgule.
En le modifiant, il semble que ça fonctionne.
À toi de tester.
En le modifiant, il semble que ça fonctionne.
À toi de tester.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
Jamelot
- Membre lOOyal

- Messages : 28
- Inscription : 09 juin 2009 14:09
- Localisation : Quimper, Bretagne
Re: Clef primaire décalé en autovaleur
Bonjour,
En fait, la solution donnée par Jeanmimi est la bonne. Cependant, il faut l'adapter à ta base.
La commande SQL suivante :
permet de repositionner l'index de l'autovaleur. Comme ta table "Romans" s'arrête actuellement à l'index 345, tu dois effectuer la commande suivante :
pour qu'elle puisse redémarrer où tu t'es arrêté.
Voilà!
En fait, la solution donnée par Jeanmimi est la bonne. Cependant, il faut l'adapter à ta base.
La commande SQL suivante :
Code : Tout sélectionner
ALTER TABLE "Romans" ALTER COLUMN "Ref Roman" RESTART WITH 1Code : Tout sélectionner
ALTER TABLE "Romans" ALTER COLUMN "Ref Roman" RESTART WITH 346Voilà!
OpenOffice 3.1.1 sous Windows XP
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
Re: Clef primaire décalé en autovaleur
Super! Ca marche!
C'est vrai que je ne connais rien en SQL, alors....
Mais maintenant j'ai une dernière question:
Je voulais savoir si c'était possible de "décaler" ce qui a été entré dans "Référence Roman".
Je m'explique: Actuellement, la première entrée a la valeur "0" dans le champ "Référence Roman". Du coup, si je vais à l'entrée 45, j'ai la "Référence Roman" n°44, et ainsi de suite. Ce n'est pas bien grave, mais ça aurait été pratique que les valeurs entrée dans "Référence Roman" correspondent aux numéro des entrées. 5je ne sais pas si vous me suivez....)
C'est vrai que je ne connais rien en SQL, alors....
Mais maintenant j'ai une dernière question:
Je voulais savoir si c'était possible de "décaler" ce qui a été entré dans "Référence Roman".
Je m'explique: Actuellement, la première entrée a la valeur "0" dans le champ "Référence Roman". Du coup, si je vais à l'entrée 45, j'ai la "Référence Roman" n°44, et ainsi de suite. Ce n'est pas bien grave, mais ça aurait été pratique que les valeurs entrée dans "Référence Roman" correspondent aux numéro des entrées. 5je ne sais pas si vous me suivez....)
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3
-
Jamelot
- Membre lOOyal

- Messages : 28
- Inscription : 09 juin 2009 14:09
- Localisation : Quimper, Bretagne
Re: Clef primaire décalé en autovaleur
Alors, tout d'abord, fais une copie de ta base ... au cas où!!!
Ensuite, sélectionnes la table "Romans", cliques droit -> copier.
Ouvre un document "calc" et fait "coller". C'est un peu long, il y a quelques données....
Puis ouvre ta table "Romans". Sélectionne tous les enregistrements et supprime les. Ferme la table.
Effectue la requète SQL suivante :
Depuis ton fichier calc, sélectionne tous (y compris la première ligne), "copier".
Clique droit sur ta table "Romans" -> coller.
Sélectionne "Ajouter des données", puis "suivant".
Ensuite, décoche la case "Ref Roman" puis "créer".
C'est fini.
Ensuite, sélectionnes la table "Romans", cliques droit -> copier.
Ouvre un document "calc" et fait "coller". C'est un peu long, il y a quelques données....
Puis ouvre ta table "Romans". Sélectionne tous les enregistrements et supprime les. Ferme la table.
Effectue la requète SQL suivante :
Code : Tout sélectionner
ALTER TABLE "Romans" ALTER COLUMN "Ref Roman" RESTART WITH 1Clique droit sur ta table "Romans" -> coller.
Sélectionne "Ajouter des données", puis "suivant".
Ensuite, décoche la case "Ref Roman" puis "créer".
C'est fini.
OpenOffice 3.1.1 sous Windows XP
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
Re: Clef primaire décalé en autovaleur
Euh...c'est quoi un document "Calc"?
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3
-
Jamelot
- Membre lOOyal

- Messages : 28
- Inscription : 09 juin 2009 14:09
- Localisation : Quimper, Bretagne
Re: Clef primaire décalé en autovaleur
OpenOffice Calc = un classeur, une feuille de tableur
OpenOffice 3.1.1 sous Windows XP
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
Re: Clef primaire décalé en autovaleur
Euh...une fois que j'ai tout copier dans un document Calc, je ne sais pas comment séléctionner tous les enregistrements de la table "Romans" afin de les supprimer. (vraiment, je suis un débutant...)
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3
-
Jamelot
- Membre lOOyal

- Messages : 28
- Inscription : 09 juin 2009 14:09
- Localisation : Quimper, Bretagne
Re: Clef primaire décalé en autovaleur
Alors,
Lorsque ta table est ouverte, tu vas sur le dernier enregistrement. Tu cliques sur la case de gauche pour sélectionner toute la ligne. Puis, avec l'ascenseur (à droite), tu remontes jusqu'au premier enregistrement. Là, tu appuies sur la touche 'shift' (ou 'Maj.') et tu cliques sur la case à gauche du premier enregistrement. Tout doit passer en fond bleu. A ce moment, tu peux faire : Edition -> Supprimer l'enregistrement (ou tout simplement la touche 'Suppr.'). Comme dit le slogan, "Tout doit disparaître"!!!
Lorsque ta table est ouverte, tu vas sur le dernier enregistrement. Tu cliques sur la case de gauche pour sélectionner toute la ligne. Puis, avec l'ascenseur (à droite), tu remontes jusqu'au premier enregistrement. Là, tu appuies sur la touche 'shift' (ou 'Maj.') et tu cliques sur la case à gauche du premier enregistrement. Tout doit passer en fond bleu. A ce moment, tu peux faire : Edition -> Supprimer l'enregistrement (ou tout simplement la touche 'Suppr.'). Comme dit le slogan, "Tout doit disparaître"!!!
OpenOffice 3.1.1 sous Windows XP
-
coucou
- Membre OOrganisé

- Messages : 76
- Inscription : 08 sept. 2009 08:20
Re: Clef primaire décalé en autovaleur
Super!
C'est royal!
J'ai une base toute proprette, maintenant!
C'est royal!
J'ai une base toute proprette, maintenant!
LibreOffice Version: 5.1.6.2
LinuxMint 18.3
LinuxMint 18.3