LAST_INSERT_ID non funziona

di il
5 risposte

LAST_INSERT_ID non funziona

SELECT LAST_INSERT_ID() from table_products;


Salve. Sto per inserire un nuovo prodotto nella tabella dei prodotti e vorrei sapere a che ID sta per attribuirlo... Su internet ho trovato il codice scritto sopra, ma non funziona... C'è un prodotto, ma mi da come risultato 0... Qualcuno sa come si fa? Grazie mille !

5 Risposte

  • Re: LAST_INSERT_ID non funziona

    p0ll0_ ha scritto:


    SELECT LAST_INSERT_ID() from table_products;
    Salve. Sto per inserire un nuovo prodotto nella tabella dei prodotti e vorrei sapere a che ID sta per attribuirlo... Su internet ho trovato il codice scritto sopra, ma non funziona... C'è un prodotto, ma mi da come risultato 0... Qualcuno sa come si fa? Grazie mille !
    Stai per inserire oppure hai inserito ?
    Se stai per inserire NON hai capito come funziona il last_insert_Id (che poi il nome è talmente autoesplicativo che ... )
  • Re: LAST_INSERT_ID non funziona

    Sto per inserire un nuovo prodotto e voglio sapere che id avrà questo prodotto. (l'ID è ovviamente un auto increment) Grazie
  • Re: LAST_INSERT_ID non funziona

    p0ll0_ ha scritto:


    Sto per inserire un nuovo prodotto e voglio sapere che id avrà questo prodotto. (l'ID è ovviamente un auto increment) Grazie
    Vedo che insisti con il 'sto per inserire' ...
    Stai per fare la insert (ma ancora non l'hai fatta) e quindi fai la select last_insert_id, non perdiamo tempo a parlarne ... 'perdi' tempo a leggerti il manuale di MySQL.

    Hai fatto la insert e poi fai la select last_insert_id ??? Se si e il risultato è 0 parliamone ...
  • Re: LAST_INSERT_ID non funziona

    Fare o non fare, non c'è provare (Yoda)

    In generale non si può sapere a priori l'ID di un record che devi ancora inserire: c'è un problemino con gli accessi concorrenti al DB. Per spiegare: se tu chiedi al db di darti il prossimo id libero e mentre ti risponde un altro utente inserisce un record, la risposta data non è più valida.

    Il modo normale quindi è seguire le indicazioni di Yoda.

    Ovviamente ci sono mille stratagemmi per aggirare il modo normale, ma come diceva Jarabe de Palo: depende, todo depende. Se ci sono più utenti è davvero dura. Se anche hai un solo utente che accede dovresti almeno conoscere le politiche di incremento degli ID che potrebbero dipendere dalla versione e addirittura le impostazioni del DB rendendo il tuo codice fortissimamente connesso (tightly coupled) con il DB, ed è male.

    Il consiglio: inserisci o non inserire. Parti da qui e adegua il codice di conseguenza.
  • Re: LAST_INSERT_ID non funziona

    Se non ti fosse ancora chiaro, PRIMA esegui la INSERT e subito dopo esegui la SELECT
Devi accedere o registrarti per scrivere nel forum
5 risposte