Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    campo di data default data corrente

    salve a tutti dovrei creare una tabella con una chiave primaria che sia la data e che come default abbia la data corrente, ho fatto cosi:

    alter table statistica change data data date primary key not null default 'CURRENT_DATE';

    ma nn penso vada bene dato che ottengo con describe:
    +------------+--------+------+-----+------------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +------------+--------+------+-----+------------+-------+
    | data | date | | PRI | 0000-00-00 | |

    come posso risolvere?

    si può gestire il tutto solamente da php?
    cioè al momento dell'inserimento invio da un campo hidden la variabile data odierna e la setto nel campo data della tabella e dato che è chiave primaria nn potrà mai essere aggiunto un altro record con quella data?

    grazie a tutti

  2. #2

    Re: campo di data default data corrente

    [supersaibal]Originariamente inviato da ilc0rv0
    salve a tutti dovrei creare una tabella con una chiave primaria che sia la data e che come default abbia la data corrente, ho fatto cosi:

    si può gestire il tutto solamente da php?
    cioè al momento dell'inserimento invio da un campo hidden la variabile data odierna e la setto nel campo data della tabella e dato che è chiave primaria nn potrà mai essere aggiunto un altro record con quella data?

    grazie a tutti [/supersaibal]
    Lavoro inutile. La data in formato DATE non e' assolutamente idonea come chiave primaria. Mettila in un campo che ti pare e come chiave primaria lascia un id numerico autoincrement. Oltretutto quand'anche tu usassi DATETIME o un UNIX TIMESTAMP potresti travarti in conflitto di chiave duplicata.

    Tra l'altro per l'assegnazione del dato ora, viene letta l'ora di sistema ed applicata a tutti i record interessati dalla stessa query.

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

  3. #3
    mysql> select * from statistica;
    +------------+---------+------+------------+---------+
    | data | fornito | reso | svifornito | svireso |
    +------------+---------+------+------------+---------+
    | 2005-05-07 | 9 | 6 | 6.890061 | 3.9876 |
    +------------+---------+------+------------+---------+
    2 rows in set (0.00 sec)

    mysql> insert statistica values('2005-05-07','8','12','5.98','4.67');
    ERROR 1062 (23000): Duplicate entry '2005-05-07' for key 1
    mysql>

  4. #4
    [supersaibal]Originariamente inviato da ilc0rv0
    [/supersaibal]
    forse volevi dire:


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

  5. #5
    e come mai?
    a me serve che faccia quello
    non devo poter inserire gli stessi dati in quei campi nella stesso giorno.
    anzi poi ho aggiustato gli script in modo da chiedermi se voglio aggiornarli nel caso esistano
    cosa c'è di male?

  6. #6
    [supersaibal]Originariamente inviato da ilc0rv0
    e come mai?
    a me serve che faccia quello
    non devo poter inserire gli stessi dati in quei campi nella stesso giorno.
    anzi poi ho aggiustato gli script in modo da chiedermi se voglio aggiornarli nel caso esistano
    cosa c'è di male? [/supersaibal]
    Puoi fare un campo UNIQUE con la data e lasciare un id autoincrement.

    Niente di male... se quello e' lo scopo, ma l'errore va sempre prevenuto. Cioe' devi verificare che la data non ci sia oppure inserirla con REPLACE INTO se vuoi cambiare quel dato...

    Ma lo saprai tu quel che vuoi fare.... ho solo risposto alla tua domanda... per me va bene .. anzi piu' che bene


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

  7. #7
    ah no no, la data mi viene inserita automaticamente, cioè l'utente non inserisce la data ma viene generata da sola da $data=date("Y-m-d")
    e poi un campo hidden la inserisce
    pensavo fosse sbagliato usare una data come identificatore

  8. #8
    [supersaibal]Originariamente inviato da ilc0rv0
    ah no no, la data mi viene inserita automaticamente, cioè l'utente non inserisce la data ma viene generata da sola da $data=date("Y-m-d")
    e poi un campo hidden la inserisce
    pensavo fosse sbagliato usare una data come identificatore [/supersaibal]
    E' sbagliato formalmente perche' non e' il campo ottimale, ma non e' impossibile usarla, potresti anche usare un indirizzo, ma la chiave primaria dovrebbe essere semplice, univoca, immodificabile, senza caratteri di tipo diverso (numeri segni ecc) e non significativa per il record nel contenuto. Una data e' tutt'altro...

    Se poi la ricavi tu, perche' usare un campo hidden? la inserisci direttamente nel campo con una funzione mysql tipo CURDATE() o NOW()

    insert into tabella (data, pippo, pallo) values (curdate(), '$pippo', '$pallo')

    occhio alle apici... sulla funzione non ci vogliono


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

  9. #9

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.