PDA

Ver la Versión Completa : Saber el valor auto_increment antes del insert


cahosoft
12-10-2006, 17:02:57
hola como estan,
tengo una tabla en mysql asi:

CREATE TABLE `t_comu_inev_grupo_grupo` (
`codcomuinev_grupo_grupo` bigint(11) NOT NULL auto_increment,
`codgrupo` bigint(11) default NULL,
`section_id` bigint(20) default NULL,
`fechacomuinev_grupo_grupo` date default NULL,
`horacomuinev_grupo_grupo` time default NULL,
`mensajeinev_grupo_grupo` longtext,
`tituloinev_grupo_grupo` varchar(100) default NULL,
PRIMARY KEY (`codcomuinev_grupo_grupo`)
) TYPE=MyISAM


antes de hacer un insert necesito encontrar el modo de encontrar o saber el valor auto_increment que viene ene la secuencia....
en este caso en el campo codcomuinev_grupo_grupo...
Gracias de ante mano.. por cualquier ayuda

Lonidas
12-10-2006, 17:22:46
Para que deseas conocer el próximo valor????

cahosoft
12-10-2006, 17:22:57
select last_insert_id()
from t_comu_inev_grupo_grupo

saca el nuevo valor del auto_increment

cahosoft
12-10-2006, 17:25:23
para imprimir el valor y no tener que consultar en la db

kayetano
12-10-2006, 20:18:32
Hola

Ya que estas en el foro de PHP supongo que estas trabajando con PHP, por lo tanto una vez realizado el INSERT puedes obtener el ultimo auto_increment introducido con la intrucción mysql_insert_id().

No se si tu aplicación es monopuesto o multipuesto (por lo general si es via web es multipuesto) pero puede ocurrir que entre la obtención del próximo ID y el INSERT otro usuario realice un INSERT con lo que incrementará el ID de la tambla y tu operación saldrá erronea (no se si me explico), lo ideal es primero insertar el registro y luego obtener el valor de auto_incremente con MYSQL_INSERT_ID().

dec
12-10-2006, 20:51:47
Hola,


para imprimir el valor y no tener que consultar en la db


Hasta donde llego es menester consultar la base de datos... aunque, por otro lado es lógico, ¿no?

Con PHP podría ser algo así:


$resultado = mysql_query("SHOW TABLE STATUS FROM nombrebdatos LIKE 'nombretabla'");
$datosTabla = mysql_fetch_object($resultado);
mysql_free_result($resultado);

echo $datosTabla->Auto_increment;


Más información en MySQL con clase (http://www.conclase.net/mysql/curso/index.php?sen=SHOW_TABLE_STATUS).

cahosoft
12-10-2006, 22:07:20
a gracias por la recomendacion, si hay varios usuarios concurrentes puede que se presente problemas con el id.......

dec
12-10-2006, 22:12:39
Hola,


a gracias por la recomendacion, si hay varios usuarios concurrentes puede que se presente problemas con el id.......
Editar/Borrar Mensaje


Sí que podrían darse problemas, pero, dependerá de lo que se quiera hacer con el "próximo auto-index".

Ese dato está ahí, no obstante y, acaso pudiera utilizarse no sólo con fines informativos... ;)

roman
12-10-2006, 22:21:26
y, acaso pudiera utilizarse no sólo con fines informativos...

¿Cómo cuál? ;)

// Saludos

dec
13-10-2006, 09:46:47
Hola,

Bueno. Pues la verdad es que ayer se me ocurrió algo que ahora me parece un tanto bárbaro,... así que no lo diré. Pero, si es verdad eso de que la información es poder, de hacer cosas, por ejemplo, lo cierto es que saber cuál es el próximo valor del "auto increment" puede servir de algo en algún caso, fijo. :)

Por otro lado, al investigar sobre el tema me topé con el "SHOW TABLE ESTATUS", que no sólo te permite averiguar el último "auto increment" de una tabla (o de todas) sino bastantes cosas curiosas más. Al menos a mí me parecen curiosas, vaya.

Y... basta. Lo que iba a decir a continuación prefiero hacerlo en un nuevo Hilo en el apartado de noticias. :)