Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16

    [Mysql] Inserimento automatico di dati calcolati dalla colonna precedente

    Salve a tutti.Nella mia tabella ho due colonne "Anno Inizio" "Anno Fine" vorrei che la data di "anno fine" si calcoca dalla data di inizio +3 anni e si inserisce automaticamente ,è possibile fare una cosa del genere?Uso mysql 5.5.24 e phpmyadmin 3.5.1.Grazie per l'attenzione.

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    ma quando dovrebbe calcolarsi? quando stai facendo una INSERT o un UPDATE?
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    Dopo l'INSERT, appena dopo che inserisco la data nella casella "anno inizio" mi deve calcolare la data "anno fine" .

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    codice:
    INSERT INTO tabella (annoInizio,annoFine) VALUES ('2012',annoInizio+ 3)
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    Grazie mille per la risposta veloce. Pero devo precisare che la data è di tipo YYYY-MM-DD ,cambia qualcosa? Poi non è possibile prima inserire la data del "anno inizio" (per esempio da myphpadmin) e dopo con un trigger fare l'operazione in automatico ?

  6. #6
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non mi è chiara una cosa, tu hai una tabella con

    annoInizio formato date
    annoFine formato date

    e per ogni record che inserisci devi mettere annoFine 3 anni dopo annoInizio? ma questi record da dove li inserisci? da uno script php o manualmente da phpMyAdmin?
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    manualmente da phpmyadmin.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    91
    usa un trigger after insert

    codice:
    create trigger updateDataFine
    after insert on TABLE
    for each row
    begin
       QUERY 
    end
    http://dev.mysql.com/doc/refman/5.0/en/triggers.html

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    Mi puoi spiegare meglio come faccio a creare il trigger con phpmyadmin?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    91
    dovrebbe bastare andare sul tab SQL e scrivere il trigger con la sintassi che ti ho dato sopra. Poi esegui la query e si crea il trigger. Quando viene eseguito l'insert in automatico viene scatenato il trigger ed esegue le operazioni che ti servono.


    codice:
    CREATE TRIGGER updateDataFine
    AFTER INSERT ON MiaTabella
    FOR EACH ROW 
    BEGIN 
           UPDATE MiaTabella SET  AnnoFine = annoInizio+ 3
    END;$$
    La sintassi dovrebbe essere cosi

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.