Ho un server MySQL 5 e una tabella in esso con un autoincremento su un campo id (chiave primaria). Ora voglio aggiungere un record in mezzo e quindi devo aumentare tutti gli altri ID di uno. Questo è quello che provato:Incrementa il campo ID autoincremento di uno
UPDATE myTable SET id=id+1 WHERE id >= 53
Questo non funziona a causa per esempio di un record con id = 52 esiste già. Come posso fare questo? Penso che se dovesse iniziare dall'ultima voce e faccia funzionare gli aggiornamenti. Ma come?
Il primario è destinato a fornire un'identità * * per una riga, non * * ordine di loro. Utilizzare una colonna separata per specificare l'ordine desiderato. Cambiare la chiave primaria per una riga dopo averla inserita ti darà solo problemi. –
Cosa succede se rilasciare e ricreare il campo autoincreament? –
Eliminare e ricreare la colonna (o provare a rinumerare le righe esistenti) non funzionerà, specialmente se hai già usato gli ID come chiave esterna da qualche altra parte. (Interromperà le connessioni alle righe esistenti.) Dovresti davvero ascoltare @MarkByers - "Cambiare la chiave primaria per una riga dopo averla inserita ti darà solo problemi." Vedi anche [questo] (http://stackoverflow.com/questions/2106237/is-there-any-harm-in-resetting-the-auto-increment) QUINTA domanda e le sue risposte. –