Incremento automático en phpmyadmin

94

Tengo una base de datos existente que usa PHP, MySQL y phpMyAdmin.

Cuando los usuarios se convierten en 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 único para cada miembro.

¿Sería posible para mí establecer la clave principal en auto_increment en mi tabla de usuarios y configurarla para que comience en 10000 y luego aumente automáticamente cada vez que un miembro se registre?

Además, ¿hay un número máximo al que llegaría el número de identificación de la clave principal?

¿Es esta una forma confiable y segura de utilizar el número de identificación de la clave principal como número de membresía?

JaYwzx Wong
fuente
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 me equivoque, pero no lo sería. limitado a un valor máximo de 4294967295 entonces? dev.mysql.com/doc/refman/5.0/en/numeric-types.html
Sam
Recoja la respuesta aceptada. Creo que este es el stackoverflow.com/a/18942684/248616
Nam G VU

Respuestas:

201

Hay posibles pasos para habilitar el incremento automático de una columna. Supongo que la versión de phpMyAdmin es 3.5.5 pero no estoy seguro.

Haga clic en Tabla > pestaña Estructura > En Acción Haga clic en Principal (establecer como principal), haga clic en Cambiar en la ventana emergente, desplácese hacia la izquierda y marque A_I . También asegúrese de haber seleccionado Ninguno como predeterminadoingrese la descripción de la imagen aquí

Amit Bhagat
fuente
5
Dado que la función de auto-inc se eliminó de la pestaña Operaciones, parece que esta es la forma de implementarla ahora. Gracias, @AmitKB.
Mike S.
2
Sin embargo, cuando lo intenté, obtuve este error: Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Yaakov Ainspan
El mensaje es claro, es posible que esté intentando tener más de una columna automática.
Amit Bhagat
1
Tuve un problema similar y esto solucionó mi problema
Llamado
1
guau, tan simple. ¿Por qué nadie ha mencionado esto? Me tomó tanto tiempo encontrar una respuesta como esta. de lejos la mejor respuesta.
oldboy
52

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

Mala
fuente
5
cuando hago esto, mis únicas dos opciones con respecto a agregar auto_increment son "mover tabla a" o "copiar tabla a". No quiero mover ni copiar la tabla, simplemente agrego auto_increment. ¿¿Que esta pasando?? Estoy usando MySQL v5.6.
oldboy
@oldboy obtengo lo mismo que tú. Quizás eliminaron la función en versiones más recientes de XAMPP PhpMyAdmin
kevind
21

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

ALTER TABLE `table_name` AUTO_INCREMENT=10000

En términos de un máximo, hasta donde yo sé, no hay uno, ni hay forma de limitar ese número.

Es perfectamente seguro y una práctica común establecer un número de identificación como clave primaria, incrementando automáticamente int. Existen 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 mí personalmente , elegiría el valor de identificación principal auto_inc.

letalMango
fuente
10
  1. En la pestaña "Estructura" de su tabla
  2. Haga clic en el lápiz de la variable que desea auto_increment
  3. en la pestaña "Extra", elija "auto_increment"
  4. luego vaya a la pestaña "Operaciones" de su tabla
  5. En "Opciones de tabla" -> tipo de incremento automático -> 10000
Phil
fuente
2

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

Tim
fuente
2

@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 (usando el icono de clave con la etiqueta principal), a menos que tenga otra clave, es posible que no funcione.

KE Keronei
fuente
Ha pasado tanto tiempo desde que jugué con phpMyAdmin que olvidé cómo hacer esto. Gracias por solucionar este problema secundario. Funcionó para mí.
rncrtr
0

No puede establecer un valor máximo (aparte de 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 verificar eso con LAST_INSERT_ID () después de insertar para obtener la identificación del miembro recién creado, y si es demasiado grande, manipúlelo en el código de su aplicación (por ejemplo, elimine y rechace el miembro).

¿Por qué quieres un límite superior?

Emil Vikström
fuente
0

Esto se debe a las tablas wp_terms, wp_termmetay wp_term_taxonomy, que no tenían todos sus ID configurados enAUTO_INCREMENT

Para hacer esto, vaya a phpmyadmin, haga clic en la base de datos de preocupaciones, wp_termstabla, haga clic en la pestaña de estructura, en el lado derecho verá una pestaña con el nombre A_I(AUTO_INCREMENT), márquela y guarde (solo está haciendo esto para la primera opción, en el caso de wp_termque esté solo haciéndolo por term_id).

Haga lo mismo para wp_termmetay wp_term_taxonomyeso solucionará el problema.

Faith Olanrewaju
fuente
Parece que cree que el OP está usando WordPress, ¿dónde encontró esa información? No puedo encontrar ninguna referencia a WP en la pregunta.
Raúl Sauco
0

(a) Simplemente haga clic en su base de datos, seleccione su tabla. Haga clic en 'Operaciones'. En la sección 'opciones de la tabla' cambie el valor AUTO_INCREMENT al valor deseado, en este caso: 10000 y haga clic en 'Ir'. (Ver imagen adjunta)

(b) Alternativamente, puede ejecutar un comando SQL en la pestaña SQL después de seleccionar su tabla. Simplemente escriba 'ALTER TABLE table_name AUTO_INCREMENT = 10000;' luego haga clic en 'Ir'. ¡¡Eso es!! CONFIGURACIÓN DEL VALOR DE INCREMENTO AUTOMÁTICO imagen (a)

CONFIGURACIÓN DEL VALOR DE INCREMENTO AUTOMÁTICO imagen (B)

Done_Ke
fuente