|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : mai 2008 Messages : 12 ![]() |
Salut à tous,
Je travaille sous vista avec eclipse BD : MySQL. Ma question est : j'ai mis la colonne des Primary key (id) AUTO_INCREMENT, et j'ai 4 autres colonnes. - disons que j'ai : n (rows) lignes - je supprime la ligne avec l'id : "n-3"... cela s'effectue sans problème. - mais sur le nouveau tableau j'ai cela: id : n-5 id: n-4 id: n-2 ********* id: n-1 id: n - je veux rendre le (id: n-2) en (id: n-3) et ainsi de suite ==> (id: n-1) en (id: n-2)... sans pour autant affecter les autres colonnes de la ligne - c'est-à-dire décrémenter toutes les lignes se trouvant après la ligne supprimée, comme je travaille avec java. j'ai essayé avec cette méthode - Code :
Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Pourquoi vouloir modifier des id auto_incrémentés ? S'ils sont clés étrangères dans d'autres tables, en plus, c'est dangereux.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : mai 2008 Messages : 12 ![]() |
Parce que j'ai créé un JTable et qu'en supprimant la ligne sur le JTable, je veux que la ligne correspondante sur la base de données soit supprimée.
pour choisir la ligne au niveau de JTable, j'ai: Code java :
int select = stockTable.getSelectedRow() + 1; Ce select sera la ligne à supprimer au niveau du tableau BD Code java :
cela s'effectue ... la première fois sans problème mais pour une deuxième suppression, j'ai deux cas : 1. si l'id de la ligne choisie est inférieur à l'id de la ligne déjà supprimée, cela ne pose pas de problème...elle sera effectivement supprimée. 2. si l'id de la ligne choisie est supérieur à l'id de la ligne déjà supprimée, cela pose grand problème...une autre ligne sera supprimée le problème est qu'en supprimant sur le JTable, l'index se met à jour tout seul, mais sur la base de donnée non... Bon, maintenant, je travaille sur une correspondance autre que celle id/index, mais j'accepterai toujours des propositions ou des orientations. merci bien |
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Que je sache, après la requête DELETE, la ligne va bien être supprimée, je ne vois pas l'intérêt de modifier les id.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : mai 2008 Messages : 12 ![]() |
oui t'a raison !
ce n'est qu'une fuite de ma part mille excuses...je vais modifier mon texte |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : mai 2008 Messages : 12 ![]() |
Non , non c'est correct. C'est juste qu'il faut suivre ce que j'ai écrit par la suite (dans le même paragraphe).
Cela ne s'effectue correctement qu'à la 1ere suppression, puis la ligne que je supprime au niveau du jtable n'est pas la même au niveau de la base de données. merci |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Mais quel intérêt de vouloir, à tout crin, conserver la séquentialité des ids ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#8 | |||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Je ne peux qu'appuyer Maljuna Kris, il ne faut pas mettre à jour l'id (qui est à priori la PK) car cet id est peut être déjà utilisé dans des tables liées ou alors il le sera probablement dans l'avenir.
Citation:
Ajuste manuellement si nécessaire, ensuite plutôt qu'executer le code suivant: Code :
Code :
UPDATE tab_bas SET ordre = ordre - 1 WHERE ordre >= ? |
|||
|
|
10
|
|
|
#9 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
D'autant que, si tu veux vraiment avoir un classement par ordre d'insertion:
Code :
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
20
|
|
|
#10 |
|
Invité régulier
![]() Inscription : mai 2008 Messages : 12 ![]() |
merci les amis c'est ce que je viens de faire
ça marche impecablement ...vous m'e'tiez d'un trés grand secour.. merci et à plus |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com