2011-04-14 51 views
66

Tengo una base de datos existente usando PHP, MySQL y phpMyAdmin.Incremento automático en phpmyadmin

Cuando los usuarios se vuelven miembros de mi sitio web, necesito que el sistema cree un número de membresía único para ellos utilizando un número de cinco dígitos. por ejemplo, 83773. Supongo que es como generar una contraseña aleatoria, excepto que solo quiero números para mis miembros. Este número de identificación debe ser exclusivo de cada miembro.

¿Sería posible para mí configurar la clave primaria para auto_increment en mi tabla de usuario y configurarla para que empiece en 10000 y luego aumente automáticamente cada vez que un miembro se registre?

Además, ¿existe un número máximo al que iría el número de ID de la clave principal?

¿Es esta una manera confiable y segura de usar el número de identificación de la llave principal como número de membresía?

+3

Algunas de las personas a continuación respondieron que no hay un límite superior para la clave principal, pero supongo que el límite superior es el tamaño máximo del tipo de datos que seleccionó ... tal vez estoy equivocado, pero no lo haría. t int estar limitado a un valor máximo de 4294967295, entonces? http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html – Sam

+0

Por favor, elija la respuesta aceptada. Creo que este es el http://stackoverflow.com/a/18942684/248616 –

Respuesta

2

En phpMyAdmin, si configura un campo en su tabla para incrementar automáticamente, y luego inserta una fila y establece el valor de ese campo en 10000, continuará desde allí.

49

En phpMyAdmin, vaya a la tabla en cuestión y haga clic en la pestaña "Operaciones". A la izquierda, en Opciones de tabla, se le permitirá establecer el valor AUTO_INCREMENT actual.

+1

cuando hago esto mis dos únicas opciones con respecto a la adición de auto_increment son "move table to" o "copy table to". No quiero mover ni copiar la tabla, simplemente agregue auto_increment. ¿¿Que esta pasando?? estoy usando MySQL v5.6. – Anthony

15

Simplemente ejecute una simple consulta de MySQL y configure el número de incremento automático a lo que desee.

ALTER TABLE `table_name` AUTO_INCREMENT=10000 

En términos de un máximo, por lo que yo soy consciente de que no es uno, ni hay ninguna manera de limitar tal número.

Es una práctica común y segura establecer un número de identificación como clave principal, autoincrementando int. Hay alternativas como usar PHP para generar números de membresía para usted en un formato específico y luego verificar que el número no existe antes de insertarlo; sin embargo, para personalmente,, iría con el valor de identificación automática de auto_inc.

0

No puede establecer un valor máximo (que no sea elegir un tipo de datos que no pueda contener números grandes, pero no hay ninguno que tenga el límite que está solicitando). Puede verificarlo con LAST_INSERT_ID() después de insertarlo para obtener el ID del miembro recién creado, y si es demasiado grande, manipularlo en el código de su aplicación (por ejemplo, eliminar y rechazar el miembro).

¿Por qué quieres un límite superior?

133

Hay pasos para hacer un autoincremento para una columna. Supongo que la versión de phpMyAdmin es 3.5.5 pero no estoy seguro.

Haga clic en Tabla>Estructura pestaña> Bajo Acción clic sobre el Cambio en el rollo ventana ppoup izquierda y comprobar A_I.También asegúrese de que ha seleccionado Ninguno para defectoenter image description here

+4

Dado que la característica de autoinc se eliminó de la pestaña Operaciones, parece que esta es la forma de implementarlo ahora. Gracias, @AmitKB. –

+1

Sin embargo, cuando lo intenté recibí este error: 'Error de consulta: # 1075 - Definición incorrecta de la tabla; solo puede haber una columna automática y debe definirse como una clave' – TricksfortheWeb

+0

El mensaje es claro, es posible que esté tratando de tener más de una columna automática. –

6
  1. En la ficha "Estructura" de la tabla
  2. Haga clic en el lápiz de la variable que desea AUTO_INCREMENT
  3. en la pestaña "extra" elegir "aUTO_INCREMENT"
  4. y luego ir a la pestaña "Operaciones" de la tabla
  5. en "opciones de tabla" -> tipo de aUTO_INCREMENT -> 10000
1

@AmitKB, Su procedimiento es correcto. Aunque este error

Error de consulta: # 1075 - Definición de tabla incorrecta; solo puede haber una columna automática y debe definirse como una clave

se puede resolver marcando primero el campo como clave (utilizando el icono de la llave con la etiqueta primaria), a menos que tenga otra clave, es posible que no funcione.

Cuestiones relacionadas