2010-12-30 13 views
10

Stavo creando una nuova tabella usando MySQL Query Browser e ho notato che c'è un segno di spunta nella colonna Incremento automatico. Come funziona?Come funziona MySQL Auto Increment?

Quando si aggiunge al database in modo programmatico, è sufficiente aggiungere un numero e il database incrementa automaticamente tale numero?

Ogni volta che un NUOVO utente si registra sul mio sito, voglio che il suo ID cliente (solo numeri interi) venga incrementato automaticamente, quindi non devo cercare di generare casualmente un numero univoco.

Questo può essere fatto semplicemente?

Grazie!

+2

Riferimento: http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html –

+0

Grazie! - Quindi, non ho davvero bisogno di fare nulla. Sarà sufficiente aggiungere un numero ogni volta che viene aggiunta una nuova riga? :) –

+0

Farei questa comunità per i neofiti qui intorno. – t0mgs

risposta

15

Quando si aggiunge al database in modo programmatico, è sufficiente aggiungere un numero e il database incrementa automaticamente tale numero?

Sì, è così che funziona auto_increment.

  • Il valore viene incrementato per ogni nuova riga

  • Il valore è unico, duplicati non sono possibili

  • Se una riga viene eliminata, la colonna auto_increment di tale riga non sarà riassegnato.

  • Il valore auto_increment dell'ultima riga inserita può essere raggiunto usando la funzione mySQL LAST_INSERT_ID() ma deve essere chiamato subito dopo la query di inserimento, nella stessa connessione al database

mySQL Reference

+0

Grazie! - Accetterà in 9 minuti. :) –

+1

4 ore, 59 minuti di ritardo, ma ho ancora accettato lol. : I valori di P –

+3

'AUTO_INCREMENT' non sono necessariamente univoci: http://sqlfiddle.com/#!2/85e93/1 – MichaelRushton

0

Sì, questo è lo scopo preciso di AUTO_INCREMENT. Guarda qualunque sia il valore di incremento corrente per quella tabella, e memorizza automaticamente quel valore più 1 per la nuova riga che entra. Puoi omettere quel campo dalle tue dichiarazioni INSERT e MySQL lo gestirà per te per ogni nuova riga che arriva, dando a ciascuna riga il proprio ID univoco.

1

Quando si attiva incremento automatico di un ID arriveranno sempre aggiunto automaticamente ogni volta che un nuovo record è fatto .. Esempio:

Se si dispone di 1 record con ID 1 nella tabella e si aggiunge un nuovo record, l'ID sarà automaticamente 2.

4

1 altro, È possibile inserire anche il proprio valore (vale a dire il valore casuale).

1

Sì. Le colonne Auto_Increment funzionano come dicono sulla latta. Consigli

  • quando INSERT - zione, utilizzare NULL o omettere la colonna

  • Usa LAST_INSERT_ID() (o equivalenti API) per ottenere l'ultimo valore generato.

  • per motivi di sicurezza e logica di business, di solito è preferibile non utilizzare direttamente un valore chiave per un identificativo cliente. Considerare invece l'uso di chiavi cliente surrogate Hashed/randomizzate.

Ta