Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Aiuto con MYSQL

  1. #1

    Aiuto con MYSQL

    Ciao a tutti,
    sto realizzando un BD per un'applicazione Web scritta in Java che utilizza Mysql.
    Vorrei chiedervi due cose:

    1. Ho bisogno di fare una generalizzazione di tabelle.
    Ad esempio:
    Ho la tabella PERSONE e tabelle figlie ALUNNI e DOCENTI.
    Persone ha come chiave primaria un IDPERSONA che è intero e autoincrement.
    Per realizzare la generalizzazione le tabelle ALUNNI e DOCENTI hanno una chiave esterna
    verso persone (faccio questa generalizzazione perchè oltre agli attributi standrd di persone un
    alunno ha attributi diversi da un docente).
    Arrivo finalmente alla domanda...
    Quando devo effettuare una insert..supponiamo di un docente.. dal momento che la chiave primaria viene generata automaticamente dal sistema come faccio a collegare le tabelle se non conoco la chiave primaria?
    Se non sapete dirmi come si fa... avete qualche suggerimento alternativo?

    2.La seconda cosetta che vorrei chiedervi è questa..
    Se utilizzo dei campi inyeri autoincrement... quano effettuo delle cancellazioni, tali valori cancellati (di autoincrement) vengono persi? nel senso nn vengono + utilizzati?

    Grazie a tutti.
    Ciao e buon lavoro.
    :master: :master: :master:

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    1) Fai l'insert sulla prima tabella, poi recuperi la chiave generata (il comando sql è SELECT LAST_INSERT_ID()) e la usi per fare la insert sull'altra tabella

    2) no, non vengono più utilizzati

  3. #3
    ma SELECT LAST_INSERT_ID() è un comando sql?
    se ne frattempo si esegue una nuova insert questo comando mi restituisce quella sbagliata... può capitare?

  4. #4
    tu fai cosi

    Codice PHP:
    $query mysql_query("");
    $id mysql_insert_id(); 
    ti restituira l'ultimo id riferito alla connessione corrente..quindi vai tranquillo..
    La programmazione...
    che passione!!..

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Gianluigi83
    ma SELECT LAST_INSERT_ID() è un comando sql?
    se ne frattempo si esegue una nuova insert questo comando mi restituisce quella sbagliata... può capitare?
    Ti viene restituito l'ultimo id generato con la stessa connessione. Ovviamente devi eseguirlo come prima cosa dopo la insert, ma non hai problemi con eventuali elaborazioni concorrenti.

  6. #6
    scusate ma io nn ho parlato di php... la mia applicazione è in java...

    luca ma che vuoi dire con ... "..ma non hai problemi con eventuali elaborazioni concorrenti."??
    a cosa ti riferisci con quel MA?

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    allora forse è nel forum JAVA che devi andare a cercare e nn in php
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    allora forse è nel forum JAVA che devi andare a cercare e nn in php
    La programmazione...
    che passione!!..

  9. #9
    scusate allora......

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Qualcuno ha le idee poco chiare.
    Questo forum è sottotitolato "forum di discussione su php e mysql", e le domande poste riguardavano mysql. Quindi potete risparmiarvi l'ironia.

    luca ma che vuoi dire con ... "..ma non hai problemi con eventuali elaborazioni concorrenti."??
    Tu avevi scritto "se ne frattempo si esegue una nuova insert questo comando mi restituisce quella sbagliata... può capitare? "
    Se la nuova insert nel frattempo la esegui tu con la stessa connessione, allora hai perso l'id della precedente. Ma se viene fatto da altre connessioni (era quello che intendevo per elaborazioni concorrenti) non c'è nessun problema.
    Claro?

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.