Cómo cambiar el valor del AUTO_INCREMENT?

Cómo cambiar el valor del AUTO_INCREMENT?

Postby Armando » Sat Apr 04, 2020 5:30 pm

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
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Postby leandro » Sat Apr 04, 2020 10:30 pm

Te devuelve algún error?
Code: Select all  Expand view  RUN

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Postby Armando » Sun Apr 05, 2020 4:58 pm

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
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo cambiar el valor del AUTO_INCREMENT?

Postby Hector Pedro Lerda » Mon Apr 06, 2020 2:59 pm

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
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?

Postby Armando » Mon Apr 06, 2020 3:41 pm

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
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 51 guests