Non mi saro' spiegato troppo bene.Originariamente inviato da oly1982
Mi sono un pò perso qui. Per come ho interpretato tu dici che il problema che io ho esposto si presenta (soprattutto) quando faccio un update impostando tutti valori di default anche al campo id...
mmm... si... ma io (perdonami la mia non professionalità) quando metto un id autoincrement ad una tabella imposto il campo come primary key così che "blocco" update di questo genere... o sbaglio qualcosa?
truncate table = resetta la tabella ai primordi.
delete from table = cancella solo i record presenti lasciando le altre cose cosi' come sono.
update = mantiene i record aggiornando il contenuto a quello che ti pare.
La tua eccezione su tabelle con riferimenti esterni quindi non regge. Se cancelli ... cancelli ed il riferimento sparira' sia se usi delete sia se usi truncate. Ok? Vuoi mantenere il record di riferimento per motivi previsti dal progetto? Allora usa update lasciando i record dove sono.
Non esiste un "sopratutto" e manco "un blocchi di update". O cancelli (delete - truncate) o mantieni il record (update). Se usi il motore InnoDB puoi impostare l'integrita' referenziale con le foreign keys, se usi il motore MyISAM ci dovrai pensare da te all'integrita' del riferimento.

Rispondi quotando