Query per MYSql - aggiornamento contatore

venerdì 27 marzo 2009 - 17.33

squilibrio Profilo | Expert

Ciao a tutti, ho una tabella di dettaglio che contiene il dettaglio di tutte le spedizioni

esempio
testata spedizione :
codice 11
descrizione bla bla

primo dettaglio spedizione
codice testata 11
numero pacco 0

secondo dettaglio spedizione
codice testata 11
numero pacco 1


terzo dettaglio spedizione
codice testata 11
numero pacco 2


quindi ogni volta che aggiungo un dettaglio, numero il pacco


il problema è che se viene cancellato un dettaglio, esempio il secondo


secondo dettaglio spedizione
codice testata 11
numero pacco 1

il mio campo "numero campo" presenta un "buco"

come posso fare un update (una query che lancerei alla fine del processo di inserimento) che mi aggiorna i progressivi del campo numero pacco? (rendendoli continui 0,1,2,3,4,5,6,7... in caso di "buchi")
ovviamente ogni spedizione ha il suo progressivo, non si tratta di un progressivo comune a tutte le spedizioni


in sintesi aggiornare (ovvero ricreare il contatore) dopo ogni inserimento, dato che se l'utente mi crea una spedizione con 3 righe di dettaglio e mi cancella quella in mezzo o la prima il contarore non è progressivo... io vorrei invece che nel dettaglio il campo inizi sempre da 0 (se ho una sola riga di dettaglio) e proceda con numeri contigui ... 1,2,3,4
quindi dopo ogni inserimento, aggiornamento, cancellazione eseguirei questa query di controllo, solo che non so come gestire l'update del contatore


Grazie

CREATE TABLE `DB`.`spedizionidettaglio` (
`id` int(10) unsigned NOT NULL auto_increment,
`idSpedizioni` int(10) unsigned NOT NULL,
`numeroPacco` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `FK_webspedizionidettaglio_1` (`idSpedizioni`),
CONSTRAINT `FK_webspedizionidettaglio_1` FOREIGN KEY (`idSpedizioni`) REFERENCES `webspedizioni` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=631 DEFAULT CHARSET=latin1;


CREATE TABLE `DB`.`spedizioni` (
`id` int(10) unsigned NOT NULL auto_increment,
`idCliente` int(10) unsigned default NULL,
`idWebRubrica` int(10) unsigned default NULL,
`destRagioneSociale` varchar(255) default NULLdefault NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=379 DEFAULT CHARSET=latin1;
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5