sql - primary - mariadb auto_increment
Altere una columna MySQL para ser AUTO_INCREMENT (16)
A medida que redefine la columna nuevamente, debe especificar nuevamente el tipo de datos y agregarle auto_increment ya que es parte del tipo de datos.
ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT;
Estoy tratando de modificar una tabla para hacer que su columna clave principal AUTO_INCREMENT
después del hecho. He intentado el siguiente SQL, pero obtuve una notificación de error de sintaxis.
ALTER TABLE document
ALTER COLUMN document_id AUTO_INCREMENT
¿Estoy haciendo algo mal o esto no es posible?
+--------------------+ | VERSION() | +--------------------+ | 5.0.75-0ubuntu10.2 | +--------------------+
Debe especificar el tipo de la columna antes de la directiva auto_increment, es decir, el ALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT
.
El SQL para hacer esto sería:
ALTER TABLE `document` MODIFY COLUMN `document_id` INT AUTO_INCREMENT;
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 intenta modificar debe estar indexada (no tiene que ser la clave principal, pero generalmente es lo que usted desearía). Además, solo puede haber una columna AUTO_INCREMENT
para cada tabla. Por lo tanto, es posible que desee ejecutar el siguiente SQL (si su columna no está indexada):
ALTER TABLE `document` MODIFY `document_id` INT AUTO_INCREMENT PRIMARY KEY;
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.
En mi caso solo funcionó cuando puse not null
. Creo que esto es una restricción.
ALTER TABLE document MODIFY COLUMN document_id INT NOT NULL AUTO_INCREMENT;
La declaración siguiente funciona. Tenga en cuenta que debe mencionar nuevamente el tipo de datos para el nombre de la columna
ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT;
Para modificar la columna en mysql utilizamos alterar y modificar palabras clave. Supongamos que hemos creado una tabla como:
create table emp(
id varchar(20),
ename varchar(20),
salary float
);
Ahora queremos modificar el tipo de la identificación de la columna al entero con incremento automático. Puedes hacer esto con un comando como:
alter table emp modify column id int(10) auto_increment;
Puede usar la siguiente consulta para hacer que document_id aumente automáticamente
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
Es preferible hacer también la clave primaria document_id
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment PRIMARY KEY;
Puedes intentarlo así:
alter table [table_name] modify column [column_name] [column_type] AUTO_INCREMENT;
Roman tiene razón, pero tenga en cuenta que la columna auto_increment debe ser parte de la PRIMARY KEY o de una KEY ÚNICA (y en casi el 100% de los casos, debe ser la única columna que compone la PRIMARY KEY):
ALTER TABLE document MODIFY document_id INT AUTO_INCREMENT PRIMARY KEY
Si ninguno de los anteriores funciona, intente esto. Esto es lo que hice en MYSQL y sí, necesitas escribir el nombre de la columna (document_id) dos veces.
ALTER TABLE document
CHANGE COLUMN document_id document_id INT(11) NOT NULL AUTO_INCREMENT ;
Sintaxis de tabla previa:
CREATE TABLE apim_log_request (TransactionId varchar(50) DEFAULT NULL);
Para cambiar el valor de TransactionId para incrementar automáticamente use esta consulta
ALTER TABLE apim_log_request MODIFY COLUMN TransactionId INT auto_increment;
Use las siguientes consultas:
ALTER TABLE YourTable DROP COLUMN IDCol
ALTER TABLE YourTable ADD IDCol INT IDENTITY(1,1)
AUTO_INCREMENT
es parte del tipo de datos de la columna, debe definir nuevamente el tipo de datos completo para la columna:
ALTER TABLE document
ALTER COLUMN document_id int AUTO_INCREMENT
( int
tomado como ejemplo, debe establecerlo al tipo que la columna tenía antes)
AUTO_INCREMENT
es parte del tipo de datos de la columna, debe definir nuevamente el tipo de datos completo para la columna:
ALTER TABLE document
MODIFY COLUMN document_id int AUTO_INCREMENT
(int tomado como ejemplo, debe establecerlo al tipo que la columna tenía antes)
ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
alter table tbl_user MODIFY COLUMN id int(10) auto_increment;