Mysql
 sql >> Database >  >> RDS >> Mysql

Inserisci in un campo di incremento automatico

Ok, prima che tu abbia la risposta alla tua domanda, devo avvertirti di estremamente cattiva pratica che stai cercando di fare lì. Non fraintendermi, molti hanno provato a fare quello che stai facendo e semplicemente non è così che le cose dovrebbero funzionare.

Il tuo ID auto_incremented è una chiave primaria. La chiave primaria viene utilizzata per identificare in modo univoco una riga in una tabella. Questo è tutto. Non ha altro significato speciale oltre a quello.

Allora cosa significa per te? Significa che la tua idea di "riservare" da 1 a 10.000 per gli amministratori è negativa. Perché è cattivo? Perché stai manomettendo la chiave primaria. Non dovresti mai decidere quale dovrebbe essere il valore della chiave primaria, questo è il lavoro dei database per molte ragioni (coerenza per esempio). L'altro motivo per cui è negativo è che hai limitato qualcuno a solo 10.000 voci possibili. D'altra parte, come calcolerai qual è la prossima voce per gli amministratori? Cosa succede se hai inserito 1, 2, 3, 4 e poi elimini la voce con ID =3? Cosa succede allora? Qual è il tuo prossimo valore in sequenza? 3 o 5?

Detto questo, dovresti probabilmente ripensare alla tua strategia. Perché non aggiungere un campo "isAdmin" che ti dirà se un amministratore ha pubblicato qualcosa o meno?