Cómo cambiar el valor del AUTO_INCREMENT?

Post Reply
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Cómo cambiar el valor del AUTO_INCREMENT?

Post by Armando »

Hola Foreros:

Explico el escenario:

Tengo dos tablas, ambas tienes la misma estructura, ambas con un campo AUTO_INCREMENT,
una tabla tiene registros del 1 al 300 en el campo AUTO_INCREMENT, la otra tiene valores
del 1000 al 5000, también en su campo AUTO_INCREMENT.

Necesito unir ambas tablas y que el valor del campo AUTO_INCREMENT quede con el último
valor mas pequeño, en el ejemplo quiero que quede con el valor 300 para poder agregar
registros del 301 en adelante.

Después de unir ambas tablas, el campo AUTO_INCRMENET queda con el valor más alto
5000 y es lógico.

He intentado con ALTER TABLE para modificar el valor del campo AUTO_INCREMENT pero
no me permite reducirlo.

Alguna idea de cómo puedo lograrlo?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Post by leandro »

Te devuelve algún error?

Code: Select all | Expand


ALTER TABLE mitabla AUTO_INCREMENT=1;
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Post by Armando »

Hola Leandro:

Gracias por interesarte en el tema.

No, no devuelve error alguno, solo que no cambia el valor.

Haciendo pruebas me doy cuenta, aunque no hay información al respecto, que podemos
cambiar el valor pero debe ser un valor más alto, por ejemplo en el campo tiene un valor
de 434, podemos cambiar el valor por 435, o más alto pero nunca más pequeño.

Se que es lógico pues podemos caer en llaves duplicadas pero en mi caso tengo esto
muy dominado, en la tabla receptora el campo auto_incremental va desde el 1 hasta
el 434, voy a añadir registros cuyos valor en el acmpo auto_incremental van desde el
999000 en adelante, se que corro el riesgo pero es correcto, así lo necesito y quiero
dejar como siguiente valor el 435 pero no se deja. :cry:

Saludos Leandro, un abrazo a tu tío.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Hector Pedro Lerda
Posts: 46
Joined: Tue May 07, 2013 7:27 pm
Location: Buenos Aires - Argentina

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Post by Hector Pedro Lerda »

Armando buen dia

Para hacer lo que pides debes insertar en la primer tabla los datos de la segunda sin el campo autoincremental, al hacer esto mysql lo hace solo.

Ejemplo

Estructura de ambas

codigo, nombre, calle, id_autoin

insert into tabla_a(codigo,nombre,calle)
select codigo, nombre, calle from tabla_b

no uses el campo del id_auto

Otra manera es que juntes las tablas, y luego borres el indice guardes y vuelvas a generar el indice

Son las dos maneras

La primera es las técnica

Saludos
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Post by Armando »

Héctor:

Gracias por el consejo.

Si entiendo bien, al agregar la tabla 2 a la tabla 1 se usaría el campo AUTO_INCRMENTAL
y no es exactamente lo que quiero.

Si la tabla 1 tiene en el campo AUTO_INCREMENTAL el valor 435 mientras que en de la
tabla 2 es de 900157, necesito conservar el valor de la tabla 1 (435), pongo datos:

Tabla 1
1
2
..
435


Tabla 2
900001
900002
...
900157

Al unir ambas tablas se debe conservar el valor 435 de la tabla 1

Espero haberme explicado mejor.

Saludos, parece que no hay forma :cry:
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply