Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/08/2016, 08:41
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Insertar valor automáticamente en tabla secundaria

Cita:
Iniciado por cdmarco92 Ver Mensaje
Hola buen dia, mi duda es la siguiente

Tengo las siguientes tablas

TABLA1
id------- autoincrement, primary key
cliente
fecha


TABLA-RELACION
id------- foreing key
articulo
cantidad

Para relacionar la TABLA1 con TABLA-RELACION uso el id de la TABLA1 en TABLA-RELACION. Lo que quiero es tener el mismo id en ambas tablas para que esten relacionadas correctamente, tomando en cuenta que podrian insertar campos 2 personas el mismo tiempo.

Pense que especificando el id como foreing key en TABLA-RELACION automaticamente se insertaba cuando insertaba valores en TABLA1 pero veo que no.

Como podria hacerlo, ya sea que se inserte automaticamente el mismo valor en ambas tablas o algun metodo que sugieran?

Gracias por su atencion
Permanentemente vienen a preguntar exactamente la MISMA cosa, y siempre hay que explicarles lo mismo: No existen operaciones automágicas en BBDD o SQL. El sentido de una FK no es que se generen registros en otra tabla como creados por artes mágicas. La idea de una FK es proteger la integridad referencial entre las entidades. La existencia de tales claves evita que haya errores de programación que puedan causar ese tipo de cosas. En tu caso, ya se ha explicado infinidad de veces, y lo mismo encontrarás en cualquier tutorial básico:
Paso 1: Insertas en la tabla padre.
Paso 2: Recuperas el ID generado de a tabla padre (hay funciones especificas en cada lenguaje para ello).
Paso 3: Agregas ese valor recuperado en el segundo insert a la segunda tabla, en la posición correspondiente al valor de la FK.

NO HAY otra forma de hacerlo, y así se hace en todos los sistemas, INCLUYENDO el uso de triggers, que no son necesarios para este tipo de cosas.

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