Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365

    auto incremento, piccolo sonsiglio

    Salve a tutti

    vorrei un piccolo consiglio

    come sappiamo tutti quando creiamo una tabella sul database possiamo scegliere l'attributo auto increment

    questo ci permette di incrementare in modo automatico il valore

    così se creiamo un campo id e inseriamo 5 righe

    id venga automaticamente incrimentato da uno a 5

    ora io ho questa esigenza:

    invece di creare un id che va da uno a n devo creare un id 1/2006 - 2/2006 ecc

    ma quando cambia l'anno vorrei che l'id torni di nuovo a uno quindi 1/2007

    avevo pensato in fase di insert di controllare l'id precente e incrementarlo con un controllo sull'anno

    qualcuno ha qualche consiglio?

  2. #2
    crea la chiave primaria su due campi. un campo anno ed uno id.
    codice:
    ALTER TABLE tabella ADD PRIMARY KEY (anno, id) 
    ALTER TABLE tabella CHANGE id id INT(6) UNSIGNED NOT NULL AUTO_INCREMENT
    devi solo mettere per primo anno e per secondo l'id autoincrement altrimenti va avanti la numerazione, mentre cosi' ricomincera' da 1 per ogni anno nuovo che verra' inserito.

    poi se vuoi mostrare id/anno bastera' estrarre con CONCAT().

    SELECT CONCAT(id, '/', anno) as codice



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

  3. #3
    utilizza il campo date associato a NOW() :-)
    User senza un senso

  4. #4
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    piero.mac cacchio la tua soluzione sembra ottima

    ora me la studio un po xkè nn l'ho capita tantissimo

    grazie

  5. #5
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    piero.mac ho fatto come dicevi tu

    ALTER TABLE documenti ADD PRIMARY KEY (anno, sigla_uffici, id)

    ALTER TABLE tabella CHANGE id id bigint(10) UNSIGNED NOT NULL AUTO_INCREMENT

    e mi da questo errore

    ALTER TABLE `documenti` CHANGE `id` `id` BIGINT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT

    Messaggio di MySQL: Documentazione
    #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

    mi sai dire xkè?

    ho fatto una modifica ora l'id dovra essere anno-sigla-id

    2006-ufficio1-01 e come prima quando cambia l'anno l'id torna a zero

    grazie

  6. #6
    devi togliere l'autoincrement gia' presente.

    togli autoincrement
    rimuovi la chiave primaria
    riassegni la chiave primaria con le tre componenti.
    riassegna l'autoicrement al campo id

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

  7. #7
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    ti assicuro che nessun campo ha l'attributo auto increment

  8. #8
    ma toglimi una curiosita' ... come cacchiolo fa ad avere tante letture questo thread.... sei tu che fai dei refresh a tempo perso?????

    :master:

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

  9. #9
    Utente di HTML.it L'avatar di coteaz
    Registrato dal
    Mar 2006
    Messaggi
    365
    dall'ufficio ho explorer e lui ricarica la pagina ogni tot xkè è impazzito;

    poi quando scrivo qualche intervento lo aggiorno spesso x vedere se qualcuno mi risponde xkè spesso sono soluzioni che mi servono a breve


  10. #10
    Originariamente inviato da coteaz
    ti assicuro che nessun campo ha l'attributo auto increment
    io credo di piu' a mysql

    comunque un bigint e' da fuori di melonio per un id.... usa int(10) e' gia' i tuoi nipoti non vedranno l'overflow...

    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.