Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13

Discussione: problema funzione date

  1. #11
    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?
    Non mi saro' spiegato troppo bene.

    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.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  2. #12
    Mi spiego con un esempio

    Poniamo che ho una tabella utenti con due campi id username, con 2 record
    codice:
    +-----------------+
    +  id   | username +
    +-----------------+
         2    piero.mac  
         4    oly1982
    poi ho una tabella profilo_utenti con tre campi id, id_user (relazionato con la tabella utenti), email, con 1 record
    codice:
    +---------------------------------------+
    + id   |   id_user   |           email  +
    +---------------------------------------+
        2               4       oly1982@dominio.it
    Un bel giorno decido di eliminare tutti gli utenti della tabella utenti. dovrei cancellare anche i profili... ma non lo faccio... è un esempio...
    Se faccio il TRUNCATE della tabella utenti l'id ripartirà da 1 e il 4° record inserito si troverà relazionato con il record della tabella profilo che prima del TRUNCATE era relazionato all'utente oly1982.
    Se invece avessi fatto un DELETE ciò non si sarebbe verificato dato che l'id non sarebbe stato resettato e, quindi, il caso sopra esposto non si sarebbe verificato.

    Analogo problema si presenta nel caso in cui "inavvertitamente" cercassi di fare l'UPDATE di un id della tabella utenti. Ma se l'id è PRIMARY KEY tale query non può essere effettuata (per quel che pochissimo ne sò).

  3. #13
    e se ti prende di dar fuoco al server???? Di settare come numerico il campo dell'e-mail? Insomma up to you quello che vorresti fare.

    Sono tutte ipotesi. Se cancelli i record di utenti allora nella tabella profilo_utenti i record rimarranno orfani di utente e la struttura intera inconsistente. ..... Che te ne fai del profilo senza l'utente di riferimento???? Se inserisci altri utenti dovrai riscrivere anche la seconda tabella non ti pare? dovrai ben dare il riferimento al nuovo record inserito.

    esempio comunque errato. L'email e' un attributo non duplicato dell'utente, che ci farebbe in una tabella apposita???? E poi caso mai e' l'utente che punta all'attributo e non viceversa.

    Poi un update lo puoi fare dove ti pare basta che l'id che vuoi modificare non sia gia' presente.

    Se poi leggi piu' attentamente il primo post vedrai l'incongruenza della richiesta di Bruce5000:
    Vorrebbe eliminare "alcuni" record ma non specifica condizioni ed il codice presentato, sintatticamente corretto, gli spazzolerebbe tutta la tabella. Ecco perche' dico TRUNCATE forse almeno cosi' gli fischieranno le orecchie. Se poi spazzola ogni tot escluderei ogni problema di riìferimenti tabellari, non ti pare? .... Mai arrampicarsi su un salice piangente con i rami protesi sul lago dicevano i miei nonni.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.