Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: General Dmitry Vergadoski en 8 Julio 2013, 21:57 pm



Título: ayuda campo con auto increment
Publicado por: General Dmitry Vergadoski en 8 Julio 2013, 21:57 pm
hola amigos bueno resulta que tengo en phpmyadmin un campo ID en auto_increment y pues por ejemplo tengo:

1-LIBRO 1
2-LIBRO 2

pero cuando yo borro LIBRO 2
y intento agregar un libro nuevo, me aparece

1-LIBRO 1
3-LIBRO 2

ves como ven me puso el numero 3 envez del 2, como hago para que no suceda eso?

gracias de antemano.


Título: Re: ayuda campo con auto increment
Publicado por: 1mpuls0 en 8 Julio 2013, 23:25 pm
Qué se supone que esperaba que hiciera? xD

Hay varias formas de hacerlo (hasta cierto punto)
Una es seleccionar el último id y sumarle uno.

Código
  1. SELECT MAX(id)+1 AS siguiente_id FROM tabla;
  2.  

Código
  1. SELECT LAST_INSERT_ID(id)+1 AS siguiente_id FROM tabla;
  2.  

Debes tener cuidado cual vas a utilizar, lo digo por la cuestion de multiusuarios.

Saludos.


Título: Re: ayuda campo con auto increment
Publicado por: General Dmitry Vergadoski en 9 Julio 2013, 00:22 am
por favor ayudame amigo, no me sirvio, modifico como pusiste tu en el phpmyadmin y me sale el numero 2 y cuando ingreso el dato nuevo me sale:

1-LIBRO 1
0-LIBRO 2


Título: Re: ayuda campo con auto increment
Publicado por: 1mpuls0 en 9 Julio 2013, 01:13 am
Lo que quiero decir es que tienes que quitar la propiedad autoincrement al campo, aunque también es posible dejando esta propiedad pero no tiene caso si al final vas a colocar un valor calculado.

Después de eso tienes que hacer una consulta para conocer el valor de tu último id

Código
  1. SELECT MAX(id) AS siguiente_id FROM libros
  2.  

Supongo que estás utilizando además un lenguaje de programación, entonces lo que tienes que hacer es comparaciones.

*Pseudocódigo
Código:
if(resultado=NULL)
 siguiente_id=1
else
 siguiente_id=resultado+1

Entonces ahora tienes el valor de tu siguiente id a insertar.

Código
  1. INSERT INTO libros VALUES(siguiente_id, 'titulo');
  2.  

Espero haberme explicado mejor.

Saludos.


Título: Re: ayuda campo con auto increment
Publicado por: General Dmitry Vergadoski en 9 Julio 2013, 03:53 am
hola amigo dime exactamente como hacerlo no se entiende lo que has puesto:

lo puse asi:

SELECT MAX(id)+1 AS sig_id FROM libros;
INSERT INTO libros (id) VALUE('sig_id')

y no sirve marca el numero 0 y no agrega mas nada

lo puse asi tampoco sirve marca error en 'titulo':

SELECT MAX(id) AS siguiente_id FROM libros
INSERT INTO libros VALUES(siguiente_id, 'titulo');



Título: Re: ayuda campo con auto increment
Publicado por: 1mpuls0 en 9 Julio 2013, 04:15 am
xD
Es broma?, lo que yo te puse es un ejemplo, no sé como se llaman tus campos.

Hasta pronto!


Título: Re: ayuda campo con auto increment
Publicado por: General Dmitry Vergadoski en 9 Julio 2013, 14:47 pm
xD
Es broma?, lo que yo te puse es un ejemplo, no sé como se llaman tus campos.

Hasta pronto!

que se supone que va en titulo?


Título: Re: ayuda campo con auto increment
Publicado por: peib0l en 9 Julio 2013, 15:33 pm
que se supone que va en titulo?

colega empieza a aprender bien de SQL porque asi no....