Tengo una tabla mysql 'alfa' que contendrá la clave principal de otra tabla 'beta' en una columna. Pero si no se puede encontrar la entrada en 'beta', quiero insertar el valor en 'beta' y usar la nueva clave en 'alfa'. ¿Puedo hacer esto en una consulta de alguna manera?inserte si no existe más simplemente seleccione en mysql
Actualmente tengo:
INSERT INTO alfa SET c1=(SELECT id FROM beta WHERE name = 'john');
que funciona bien cuando existe 'John' en la tabla, pero no lo contrario. Entonces, ¿podría mejorarlo para permitir que el nuevo nombre se inserte y seleccione si aún no está allí? id está auto_incrementado.
He intentado mirar IF pero aún no he descubierto cómo usar IF fuera de SELECT, ¿es posible?
Sé que puedo hacerlo en varias consultas, pero estoy hablando con una base de datos remota, así que podría ser bueno hacerlo todo a la vez.
Por ejemplo, las tablas podrían haberse creado de esta manera:
CREATE TABLE alfa (
c1 int,
PRIMARY KEY (c1)
)
CREATE TABLE beta (
id int auto_increment,
name varchar(255),
PRIMARY KEY (id)
)
por lo alfa.c1 debe hacer referencia a los valores beta.id.
En pocas palabras, quieren hacer:
introduzca el ID de John de la tabla beta en C1 en alfa, si John no existe en beta a continuación, insertar John en beta e insertar el nuevo auto incrementa Identificación de John en c1 en alfa.
¿Puede posiblemente editar su pregunta, y al menos poner las estructuras de la tabla? No está claro de dónde vas a tener la información adicional que necesitas en beta? ¿Y cómo posiblemente alfa puede tener alguna clave, si todavía no está creada en beta? –
He intentado agregar más información ahora. – Zitrax