Estoy tratando de modificar una tabla para hacer su columna de clave principal AUTO_INCREMENT
después del hecho. He intentado el siguiente SQL, pero recibí una notificación de error de sintaxis.
ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT
¿Estoy haciendo algo mal o no es posible?
+ -------------------- + El | VERSIÓN () | + -------------------- + El | 5.0.75-0ubuntu10.2 | + -------------------- +
sql
mysql
alter-table
Cruzar
fuente
fuente
Roman tiene razón, pero tenga en cuenta que la columna auto_increment debe ser parte de la PRIMARY KEY o una UNIQUE KEY (y en casi el 100% de los casos, debería ser la única columna que constituye la PRIMARY KEY):
fuente
En mi caso solo funcionó cuando lo puse
not null
. Creo que esto es una limitación.fuente
El SQL para hacer esto sería:
Hay un par de razones por las cuales su SQL podría no funcionar. Primero, debe volver a especificar el tipo de datos (
INT
en este caso). Además, la columna que está intentando modificar debe estar indexada (no tiene que ser la clave principal, pero generalmente eso es lo que desea). Además, solo puede haber unaAUTO_INCREMENT
columna para cada tabla. Por lo tanto, es posible que desee ejecutar el siguiente SQL (si su columna no está indexada):Puede encontrar más información en la documentación de MySQL: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html para la sintaxis de la columna de modificación y http://dev.mysql.com/doc /refman/5.1/en/create-table.html para obtener más información sobre cómo especificar columnas.
fuente
Debe especificar el tipo de columna antes de la
auto_increment
directiva, es decirALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT
.fuente
MODIFY COLUMN
AUTO_INCREMENT
es parte del tipo de datos de la columna, debe definir nuevamente el tipo de datos completo para la columna:(
int
tomado como ejemplo, debe establecerlo en el tipo que tenía la columna antes)fuente
Puedes hacerlo así:
fuente
AUTO_INCREMENT
es parte del tipo de datos de la columna, debe definir nuevamente el tipo de datos completo para la columna:(int tomado como ejemplo, debe establecerlo en el tipo que tenía la columna antes)
fuente
Puede usar la siguiente consulta para hacer que document_id se incremente automáticamente
También se prefiere hacer document_id clave principal
fuente
La siguiente declaración funciona. Tenga en cuenta que debe mencionar el tipo de datos nuevamente para el nombre de la columna (vuelva a declarar el tipo de datos que era la columna antes).
fuente
Si ninguno de los trabajos anteriores intenta esto. Esto es lo que hice en MYSQL y sí, debe escribir el nombre de la columna (document_id) dos veces.
fuente
Para modificar la columna en mysql usamos alterar y modificar palabras clave. Supongamos que hemos creado una tabla como:
Ahora queremos modificar el tipo de ID de columna a entero con incremento automático. Puedes hacer esto con un comando como:
fuente
Sintaxis de tabla anterior:
Para cambiar el TransactionId al incremento automático, use esta consulta
fuente
fuente
Así como así:
alter table document modify column id int(11) auto_increment;
fuente
A medida que redefine la columna nuevamente, debe especificar el tipo de datos nuevamente y agregarle auto_increment ya que es parte del tipo de datos.
fuente
Establecer la columna como clave principal y auto_increment al mismo tiempo:
fuente
ALTER TABLE table_name MODIFICAR COLUMNA id tipo de datos auto_increment;
fuente
Use las siguientes consultas:
fuente