Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    55

    [java]problema query UPDATE con JDBC

    Ciao a tutti
    sto cercando di modificare un mio database tramite java utilizzando il comando:
    stm.executeUpdate(query);
    dove query="UPDATE utente"+
    "SET nome='nome2'"+
    "WHERE cognome='cognome1'";
    l'oggetto stm è di tipo Statement.

    Questa operazione non mi viene eseguita in java ma se la eseguo come query con il programma phpmyadmin, va tutto bene...

    sapreste aiutarmi?

    Grazie!

  2. #2

    Re: [java]problema query UPDATE con JDBC

    Originariamente inviato da Bagonghe
    Ciao a tutti
    sto cercando di modificare un mio database tramite java utilizzando il comando:
    stm.executeUpdate(query);
    dove query="UPDATE utente"+
    "SET nome='nome2'"+
    "WHERE cognome='cognome1'";
    l'oggetto stm è di tipo Statement.

    Questa operazione non mi viene eseguita in java ma se la eseguo come query con il programma phpmyadmin, va tutto bene...

    sapreste aiutarmi?

    Grazie!
    che errore ti da?
    Prima di eseguire la query conviene che fai una stampa nella stessa: magari è un banale problema di sintassi.
    Ad esempio mi sembra che manchino degli spazi prima della parole set e where.
    Se è come hai scritto infatti la stringa
    ="UPDATE utente"+
    "SET nome='nome2'"+
    "WHERE cognome='cognome1'";
    è UPDATE utenteSET nome='nome2'WHERE cognome='cognome1' e chiaramente il db non la riconosce.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    55

    hai ragione...
    scusa ma sono alle prime armi...

    se puoi aiutarmi avrei anche un'altro piccolo problema, vorrei aggiungere una chiave esterna ad una tabella e con phpmyadmin non ci riesco. uso quindi delle query in sql.
    Questa chiave è un intero.

    ALTER TABLE messaggio
    ADD FOREIGN KEY IDCasella
    REFERENCES casella_di_posta (IDCasella)
    ON DELETE CASCADE

    L'errore che mi da è:
    #1064 - you have an error on your SQL syntax; check the manual that coprrisponds to your MySql server version for the right syntax to use near 'REFERENCES casella_di_posta (IDCasella)
    ON DELETE CASCADE'

  4. #4
    in mysql nopn ricordo precisamente la sintassi, in oracle è così

    alter table TABELLA
    add constraint NOME_FOREIGN_KEY foreign key (elenco campi)
    references NOME_TABELLA_REFERENZIATA (elenco campi tabella referenziata) on delete cascade;

    tra l'altro lìelenco dei campi della tabella referenziata devono essere chiave nella tabella referenziata (se non ricordo male).

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    55
    come hai detto te non funziona lo stesso, però se la chiave è una stringa tutto funziona correttamente (con il mio metodo).
    la mia chiave però è un contatore intero...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    In MySQL l'utilizzo delle chiavi esterne ha senso solamente se il tipo di tabelle utilizzate è INNODB, altrimenti il vincolo di chiave viene ignorato.

    Comunque l'errore risiede nella sintassi. MySQL utilizza questa:
    codice:
    ALTER TABLE nome
    ADD [CONSTRAINT [simbolo]]
    FOREIGN KEY [nome_indice] (nome_campo,...)
    [reference_definition]
    Quindi, se non vado errato, dovrebbe diventare così:
    codice:
    ALTER TABLE messaggio 
    ADD FOREIGN KEY (IDCasella) 
    REFERENCES casella_di_posta(IDCasella) 
    ON DELETE CASCADE
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.