Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
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
 



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 22:25:17.


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