Cita:
Iniciado por cdmarco92 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?