Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 04-05-2020
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Es muy simple, LAST_INSERT_ID() devuelve el ID autogenerado (AUTO_INCREMENT) más recientemente de la conexión, o sea que si otro cliente realiza un insert, no lo afectaría.

A simple vista el código que estás mostrando, si se ejecuta secuencialmente, estaría haciendo lo siguiente
  1. Insertando un registro en la tabla 'articulos' por lo que LAST_INSERT_ID() tendrá el último ID autogenerado de esta tabla.
  2. Insertando un registro en la tabla 'precio1', utilizando el ID del último registro insertado del la tabla 'articulos', pero ahora LAST_INSERT_ID() tendrá el último ID autogenerado de esta 'precio1'.
  3. Insertando un registro en la tabla 'precio2', utilizando el ID del último registro insertado del la tabla 'precio1', pero ahora LAST_INSERT_ID() tendrá el último ID autogenerado de esta 'precio2'.


Calculo que la intención es que ambas tablas 'precio1' y 'precio2' hagan referencia al último ID insertado en la tabla artículos, y para eso tendrás que hacer lo siguiente:
  1. Insertar un registro en la tabla 'articulos'
  2. Consultar y mantener en una variable el valor de LAST_INSERT_ID().
  3. Hacer los inserts en el resto de las tablas.

En MySql sería simplemente:
Código SQL [-]
INSERT INTO articulos (nombre, marca) VALUES ('NOMBRE', 'MARCA');
SELECT LAST_INSERT_ID() INTO @last_articulo_id;
INSERT INTO precio1 (id_articulo, precio) VALUES ( @last_articulo_id, 1.50);
INSERT INTO precio2 (id_articulo, precio) VALUES ( @last_articulo_id, 1.50);


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir función MySql a procedimiento Firebird solilopi MySQL 5 04-09-2017 14:42:02
insertando datos en una tabla en mysql 5.7.11 con la función AES_ENCRYPT chino150 MySQL 18 01-03-2017 00:03:41
La funcion last_insert_id de my sql devuelve siempre cero frandigo77 MySQL 4 24-09-2014 17:24:51
last_insert_id windows linux. ppb MySQL 0 13-11-2013 18:06:40
last_insert_id en FireBird Kreyser Firebird e Interbase 2 19-05-2005 16:55:35


La franja horaria es GMT +2. Ahora son las 01:19:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi