Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393

    [MySql] Problema autoincrement

    Devo creare un campo nuovo che funga da ID (per adesso le chiavi sono il campo 2 e 3 insieme).

    Il problema è che vorrei che per i record già esistenti si creassero da soli gli ID. se io imposto il campo ID con auto_increment però mi dice che non posso farlo se non è chiave.

    E' come un cane che si morde la coda. O sbaglio?

  2. #2
    ma se hai già una chiave perché metterne un'altra?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393
    Eh lo so che sembra strano, ma mi serve una chiave che aumenti col tempo. Potrei anche mettere timestamp come parametro ma auto_increment mi permette di non pensarci visto che è tutto automatico

  4. #4
    anche un timestamp è automatico e se ne metti 2 come consigliato nella pillola di piero.mac (che trovi nel regolamento) ottieni due date, inserimento e modifica riempiti automaticamente.

    certamente la soluzione migliore, 0 righe di codice e molte informazioni

    inserimento hh mm dd hh ii ss
    modifica hh mm dd hh ii ss

  5. #5
    http://forum.html.it/forum/showthrea...hreadid=459634

    link alla pillola che dicevo

    Ci possono essere vari campi formato TIMESTAMP nella stesso record, ma solo il PRIMO
    in ordine di posizione nella tabella verra' automaticamente aggiornato con UPDATE.
    Gli altri campi se non esplicitamente indicati con ora/time o funzione NOW()
    verranno trascurati e rimarranno con la data, se presente, inalterata.
    Un UPDATE che ribatte un valore gia' esistente e quindi con risultato zero righe
    modificate, non aggiorna automaticamente il campo col formato dati TIMESTAMP.

    Predisponendo quindi due campi TIMESTAMP, es.:il primo "last_update"
    ed il secondo "data_insert", all'INSERT della tupla (compreso LOAD DATA
    INFILE) verranno automaticamente popolati entrambi dalla funzione NOW(), mentre i
    successivi UPDATE la funzione NOW() aggiornera' solo il primo campo TIMESTAMP
    incontrato lasciando inalterato il campo successivo.
    Ecco quindi funzionanti senza una riga di software due colonne molto significative.
    (Data ultimo aggiornamento - Data inserimento).

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    393
    Esiste un campo automatico che registra l'ultima modifica? Se sì, mi sai dire come devo impostare il campo?

    Grazie mille

  7. #7
    leggiti il link sopra che contiene tra l'altro la parte che ho quotato

    ciao

  8. #8
    Quello che citi su timestamp e' riferito a mysql 4.0

    A partire da 4.1 cambia il formato e si puo' scegliere quale timestamp incrementare e quindi non sara' piu' necessariamente il primo. Vedi anche l'annotazione alla pillola relativa a mysql 4.1

    Per quanto riguarda il quesito iniziale si potrebbe sempre creare un id autoincrement e mantenere le chiavi attuali (due campi) in un indice UNIQUE...

    ALTER TABLE table ADD UNIQUE `pippo` ( campo2 , campo3)


    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.