Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

insert to utilizando ID del mismo

Estas en el tema de insert to utilizando ID del mismo en el foro de Mysql en Foros del Web. Buenas, quisiera insertar en una tabla un valor en base a su id (AUTO_INCREMENT). Provisoriamente primero lo creo y despues hago una consulta para obtener ...
  #1 (permalink)  
Antiguo 03/11/2010, 21:14
 
Fecha de Ingreso: julio-2009
Mensajes: 58
Antigüedad: 14 años, 9 meses
Puntos: 0
insert to utilizando ID del mismo

Buenas,
quisiera insertar en una tabla un valor en base a su id (AUTO_INCREMENT). Provisoriamente primero lo creo y despues hago una consulta para obtener el id que se le ingresó para después hacer un UPDATE, pero sería más práctico poder hacerlo de una vez.
Alguna ayuda?


INSERT INTO `table1` (`id`, `code`) VALUES (NULL, 'VALOR EN BASE A ID');

VALOR EN BASE DE ID = 'R'+(1000-id)

Como obtener el id que el AUTO_INCREMENT le asigno en ese momento?? como utilizarlo ahi mismo?
  #2 (permalink)  
Antiguo 03/11/2010, 21:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: insert to utilizando ID del mismo

Me temo que como auto_increment, lo que quieres hacer es imposible, o al menos es inútil ponerlo como auto_increment si lo vas a usar así.
El auto_increment es un valor que se genera sobre la tabla en el momento de la inserción. Tal es así que la función LAST_INSERT_ID(), que es la que te devuelve el valor generado, tiene valor cero (0) si la usas en un TRIGGER sobre la tabla, incluso si lo pones AFTER INSERT.
Por otro lado, si quieres el valor antes de insertarlo, ¿qué sentido tiene que sea auto_increment? Para eso lo usas simplemente como INT y obtienes el valor a ingresar con un SELECT de tipo:
Código MySQL:
Ver original
  1. SELECT (MAX(tabla_id) + 1) sig_id FROM tabla;
Si pones esto antes del INSERT y colocas todo dentro de una transacción, no deberías tener problemas y sería mucho más sencillo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/11/2010, 16:39
 
Fecha de Ingreso: julio-2009
Mensajes: 58
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: insert to utilizando ID del mismo

Funciona excelente! es mas simplificado y eficiente de lo que tenia.

Muchisimas gracias y disculpe la molestia!
  #4 (permalink)  
Antiguo 04/11/2010, 18:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: insert to utilizando ID del mismo

No hay de qué.

Me alegro que la idea sirviera.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: insert
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:15.