Vous n'êtes pas identifié(e).

#1 07/06/2011 16:37:07

K-LiBR3
Membre

Clef qui se regenere automatiquement

Bonjour,

Je voudrais savoir comment faire pour que les clef se remette automatiquement dans l'ordre.

Par exemple, je creer cette table :

DROP TABLE IF EXISTS firstLevel CASCADE;
CREATE TABLE firstLevel
(
    id serial NOT NULL,
    PRIMARY KEY (id),
    name varchar(255) NOT NULL
);

J’insère ceci :
INSERT INTO firstLevel VALUES(0, 'blabla');
INSERT INTO firstLevel VALUES(1, 'blabla');
INSERT INTO firstLevel VALUES(2, 'blabla');
INSERT INTO firstLevel VALUES(3, 'blabla');
INSERT INTO firstLevel VALUES(4, 'blabla');

Ensuite, je supprime l'id 2 :
DELETE FROM firstLevel WHERE id = 2;

et que en conséquence, l'id 3 se mette en id 2 et que l'id 4 se mette en id 3 !


Peut on faire ceci sans fonctions php ou plgpsql ? Soit par une chose existante du genre "auto_increment"...  soit par une règle ?


Merci d'avance.

Dernière modification par K-LiBR3 (07/06/2011 16:42:11)

Hors ligne

#2 07/06/2011 16:43:41

Marc Cousin
Membre

Re : Clef qui se regenere automatiquement

Si vous faites cela, vous aurez probablement des performances abominables, puisqu'il faudra à tout prix réécrire la table (ou un gros morceau) à chaque suppression.

Expliquez nous plutôt votre problématique. Pourquoi tenez-vous à ce que cette numérotation soit sans trou ? Il y a peut-être une solution totalement différente.


Marc.

Hors ligne

#3 07/06/2011 16:52:32

K-LiBR3
Membre

Re : Clef qui se regenere automatiquement

effectivement sa sert a rien de faire ceci. C'est juste que je voulais avoir quelque chose d'ordonné. Mon site en php gère mieux quand c'est ordonné je crois (sa fait longtemps que je n'y ai pas touché)

Hors ligne

#4 07/06/2011 16:53:57

Marc Cousin
Membre

Re : Clef qui se regenere automatiquement

Utilisez «order by id», quand vous sélectionnez sur la table, les données seront ordonnées. En cas de besoin, vous pouvez aussi numéroter les enregistrements dans leur ordre de sélection avec une fonction window…


Marc.

Hors ligne

Pied de page des forums