Ver Mensaje Individual
  #10 (permalink)  
Antiguo 14/06/2006, 11:41
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por x_women
hola y gracias cluster por el link, ya lei y no seria lo mismo usar lock table?.

bueno aunque utilice transacciones no entiendo en que soluciona mi problema mi duda sigue como obtengo mi ultimo id insertado en una tabla determinada, si por lo que entendi el mysql_insert_id() devuelve el ultimo id insertado en la base de datos y las transacciones bloquean la tabla no la base de datos completa. Imaginense que se abra otra conexion y inserten datos en otra tabla...
Realizar una transacción (BEGIN - COMMIT) vs a bloquear la tabla ("Lock table") la ventaja que tiene es sobre que se puede deshacer la operación (ROLLBACK) si hay algún problema (por ejemplo que no se pueda ejecutar tu INSERT .. o cualquier otra cosa).


Cita:
mi problema mi duda sigue como obtengo mi ultimo id insertado en una tabla determinada,
El uso de esa función ya sea de PHP o de SQL directo se debe usar inmediatamente despues de un INSERT que afecte a una tabla (y sólo una que es lo que haces por sentencia INSERT de SQL) con un campo autoincremental .. Por ende el "ultimo ID" que obtienes es el de la tabla que usó tu INSERT anterior no el de otras tablas interactuando en ese instante.

La forma de uso en SQL sería:
http://dev.mysql.com/doc/refman/5.0/...unique-id.html

No puedes ni debes usar esta función para obtener tu ID último generado tras un SELECT u otra función SQL .. en ese caso tendrías que recurrir a una función tipo MAX() de SQL en una consulta SQL de tipo SELECT y basandote en que usas un campo tipo autoincremental ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 14/06/2006 a las 11:51