bisognerebbe capire perch'e devi spostare un campo chiamato "indice" e per quale ragione questo debba essere unique. Altro da capire sarebbe perche' questo campo unique "debba" essere associato ad un determinato id.Originariamente inviato da nicola75ss
Ultima cosa, devo procedere come ho scritto sopra?
Se parti dal principio che un id chiave primaria identifica un record, significa che non dovrebbe identificare anche il contenuto dei campi, ma solo il record stesso nel suo insieme. Ora chi veramente identifica "il contenuto" e' il campo "indice" (parliamo del tuo caso) e dovrebbe essere indifferente al contenuto a quale id chiave primaria sia collegato.
In altre parole... con REPLACE e lasciando NULL l'id identifichi un record con un campo indice unique specifico, se trova il valore richiesto , cancella il record e ne inserisce uno nuovo con stesso valore unique, nuovi contenuti degli altri campi e nuovo id chiave primaria autoincrement. Se non lo trova questo valore si limita ad inserire un nuovo record.
Se tu hai l'esigenza di inserire il tuo valore in un campo unique di uno specifico id allora devi fare come hai detto, ma dovresti spiegarmi perche' ti sia indifferente l'id nel caso di inserimento di nuovo record. A rigor di logica dovrebbe esserti indifferente anche se il record venisse identificato, cancellato e sostituito con nuovo.