PDA

View Full Version : [MySQL]Replace Into...


Frank1962
23-10-2007, 09:46
Ho qualche difficoltà con la semantica di questa operazione: se non ho capito male la replace dovrebbe permettermi di sostituire dei valori in una riga con un determinato identificativo (primary key) ...supponiamo quindi di avere una relazione con i seguenti attributi:


|id|att1|att2|att3|att4|att5|


supponiamo anche che il database sia stato aggiornato con una ventina di righe nella suddetta relazione e, per qualche motivo, voglio cambiare i valori degli attributi att2 e att4 della quinta riga della relazione:


REPLACE INTO relazione(id,att1,att2) VALUES(5,aval,aval)


in teoria dovrebbe aggiornarmi i due attributi lasciando invariati gli attributi att1,att3,att5 ....mi capita invece che questo replace mi vadi ad aggiornare la riga sostituendo poi i valori di questi ultimi attributi con dei valori posti a NULL!
com'è possibile questo comportamento? ...forse devo fare un UPDATE invece che un REPLACE?

ciao e grazie
frank

Frank1962
23-10-2007, 12:59
risolto ;)


UPDATE relazione SET attr = val WHERE id = key;