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

    LAST_INSERT_ID() sempre 0

    Ciao,
    volevo provare LAST_INSERT_ID() in MySQL Query Browser.
    Ho creato tabella MYSQL, dove il primo campo è l'ID, contatore tipo Auto_Increment.
    Inserisco un nuovo record. Eseguo SELECT LAST_INSERT_ID() ed ottengo sempre 0.

    Grazie.
    shd

  2. #2
    il last_insert_id va usato subito dopo l'operazione di insert, se lo usi in una query così ti darà sempre zero.

    http://dev.mysql.com/doc/mysql/en/od...insert-id.html

    se vuoi sapere l'ultimo id inserito usa la funzione MAX
    http://dev.mysql.com/doc/mysql/en/gr...functions.html

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3

    RR:

    Grazie,
    ma io sto provando con MySQLQueryBrowser e alla fine userò Java per eseguire lo statement. Ho eseguito in sequenza le istruzioni di INSERT e di SELECT LAST_INSERT_ID(). Cos'altro potevo fare?
    Ciao.
    shd

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    137
    so che il tread è parecchio vecchio ma il mio discorso può proseguire da questo.
    Anch'io ricevo sempre 0 eseguendo da phpmyadmin prima la query insert e poi la query last_insert_id in modo indipendente.
    Eseguendole assieme (quindi last_insert_id dopo il ";" della query precente) invece funziona.

    Avrei, dunque, alcuni dubbi sul funzionamento di LAST_INSERT_ID():
    - LAST_INSERT_ID() va sempre eseguito concatenato alla query precedente?

    oppure

    - in generale chi si collega al sito avvia una connessione SQL propria o ne viene usata solo una?
    - in entrambi i casi, se viene chiamata una funzione che effettua un INSERT e poi un LAST_INSERT_ID come valore di return come agisce last_insert_id ? rischio di non ricevere in return il valore del precedente INSERT? Oppure rischio di ricevere sempre 0?
    - se esiste il problema precedente, si può evitare utilizzando le transazioni?

    Grazie!

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.