|
||||
Ouverture de sessionNavigationContactez-nousAdministration du site : RechercheSujets du forumSujets actifsNouveaux sujets:SyndicationSondageQuelle est la version de PostgreSQL la plus répandue sur vos serveurs ? 8.3 10% 8.2 42% 8.1 40% 8.0 2% 7.4 6% 7.3 ou antérieure 0% Nombre de votes: 48 |
Insertion d'un élément dans une liste à une position donnée - Intégrité Référentielle - Contrainte Unique différéeTechnique - général | Insertion d'un élément dans une liste à une position donnée - Intégrité Référentielle - Contrainte Unique différéePar olibrius le 13/01/2006 - 13:10 Bonjour, Je vous décrie un peu la structure de ma table et le problème que j'ai: CREATE TABLE categorie Comme vous pouvez le voir il existe une relation de un à plusieurs de la table sur elle-même pour une relation par fils. La requête SQL pourait prendre la forme suivant: Update categorie set id_ordre=id_ordre+1 where id_categorie_pere=1 and id_ordre>=3 pour une insertion à la troisieme position. Après quoi il ne me reste plus qu'a introduire la nouvelle catégorie à la postion 3 dans la même transaction avec la commande insert into categorie (id_categorie_pere,designation,id_ordre) values (1,'Insertion en position 3',3); mais quand je fais cela je me trouve confronter à l'impossibilité de modifier id_ordre du fait de la contrainte d'unicité dont je ne sais pas différer l'évaluation jusqu'après le traitement de la requête. Est-ce que quelqu'un à une idée? Je tourne actuellement avec une 8.0.0 RC2 ce qui n'est sans doute pas le bon choix. Olibrius |
|||
© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.