Quando si inseriscono dati in una tabella con un PK con incremento automatico, è necessario ottenere tale chiave per utilizzarla in un'altra istruzione. Come molte domande mostrano su SO questo può essere fatto in PHP usando mysql_insert_id()
.Recupero degli ultimi ID inseriti per più righe
Tuttavia, ho raggruppato insieme i miei inserti in modo da inserire più di una riga alla volta. Ho fatto questo perché immaginavo che ci sarebbe stato probabilmente qualche problema di prestazioni, ti prego di avvisare se ho torto. Ad ogni modo, per quanto ne so, lo mysql_insert_id()
restituisce solo l'ultimo ID, quando ho bisogno degli ID per tutte le righe inserite.
Credo che in questo caso ho potuto:
fare un po 'di matematica semplice per calcolare tutti gli ID utilizzando
mysql_insert_id()
e il numero di righe che ho inseriti. Ma è garantito che sia sempre corretto?utilizzare istruzioni inserire più, uno per ogni riga
generare i miei ID prima e inutile incremento automatico.
Sono sicuro che questo deve essere un problema classico, quindi mi sto chiedendo quali sono gli approcci più comuni e consigliabili.
L'approccio 'CURRENT_TIMESTAMP' sembra un po 'pericoloso per me. Cosa succede se tu e qualcun altro scrivete allo stesso tavolo contemporaneamente (stesso timestamp)? – tonix