J'ai une table 'order_item' avec order_item_id int order_id intComment re-séquence d'une colonne id après suppression d'une ligne (PAS UNE AUTO-INCREMENT)
la clé primaire est order_item_id + order_id
Donc, l'ID commande_idem n'est pas unique et l'ID commande non plus, mais la combinaison des deux colonnes est unique.
Si un client ajoute plusieurs éléments à leur ordre nous pourrions avoir une table comme celui-ci
order_item_id order_id
------------------------
1 5
2 5
3 5
4 5
... et si le client supprime alors order_item_id 2 alors il y a une lacune dans la séquence. L'identifiant order_item_id est affiché pour la référence du client et utilisé lorsque nous envoyons des commandes d'achat aux fournisseurs.
Existe-t-il un moyen de réorganiser le order_item_id pour un order_id spécifique? Je l'ai essayé ce qui suit, mais continuer à obtenir une clé en double erreur et il ne cesse de changer l'identifiant du premier article trouvé à 0 non 1.
SET @i := 0;
UPDATE order_item
SET order_item_id = (@i := @i + 1)
WHERE order_id = 5
ORDER BY order_id, order_item_id
Merci pour toute aide.
Vous utilisez Oracle? MySql? – ClosureCowboy
Merci! En raison des affectations ": =", je suppose que Vijer utilise MySQL. Si SQL Server permet ceux-ci, je vais considérer mon esprit soufflé! – ClosureCowboy
Désolé, oui MySQL – Vijer