Bonjour,
Je développe sous Delphi, mais ma question penche plus pour une question de SQL, j'ai donc posté ici. Si c'est mal posté, merci de faire suivre le post
En fait, j'ai une table RECEPTION reliée a une table PLAT_MANGE via une table association"COMPOSER" (association 1,n de chaque côté).
Sous Delphi, j'ai la possibilité de supprimer une réception via son "REC_CODE". Quand je fais cela, le code va supprimer les tuples de la table association "COMPOSER" dont REC_CODE est celui qui est supprimé, et va ensuite supprimer la réception dans la table "RECEPTION" selon le code suivant :
Jusqu'ici, tout va bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete from composer where rec_code='lareceptionsupprimée'; delete from reception where rec_code='lareceptionsupprimée';
Le truc, c'est que si on a par exemple, 5 réceptions d'enregistrées de 1 à 5 d'après leur REC_CODE, et qu'on supprime la réception 3. Dans la table on va avoir 1,2,4,5 en clé primaire. Mon ajout fonctionne sur un
et lors de l'ajout, compte le nombre de tuples et ajoute la réception "count(*)+1". Donc si on a 4 réception 1,2,4,5 et qu'on en ajoute une, il va vouloir ajouter la réception 5. Voilà pour l'explication.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select count(*) from reception
Je voudrais donc décaler mes tuples après la suppression via un simple
Seulement, ya tjs un prob de violation de clé primaire dans une table ou dans une autre, alors je sais plus quoi faire.... Si qqun a une idée :/ Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 update composer set rec_code=rec_code-1 where rec_code>'lareceptionsuppr'; update composer set rec_code=rec_code-1 where rec_code>'lareceptionsuppr'
Partager