"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo insertar datos en varias tablas MySQL simultáneamente?

¿Cómo insertar datos en varias tablas MySQL simultáneamente?

Publicado el 2024-12-21
Navegar:922

How to Insert Data into Multiple MySQL Tables Simultaneously?

Inserción de MySQL en varias tablas: normalización de la base de datos

La inserción de datos en varias tablas simultáneamente en MySQL no se admite directamente. Sin embargo, existen enfoques alternativos para lograr esta funcionalidad.

Uso de transacciones

Para garantizar la coherencia de los datos en todas las tablas, se recomienda utilizar transacciones. Las transacciones encapsulan una serie de consultas como una sola unidad, lo que garantiza que todas las consultas tengan éxito o fallen juntas.

Aquí hay un ejemplo que utiliza transacciones:

BEGIN;
INSERT INTO users (username, password) VALUES('test', 'test');
INSERT INTO profiles (userid, bio, homepage) VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com');
COMMIT;

Recuperar el valor de incremento automático

Para insertar la identificación de incremento automático de la tabla de usuarios en la tabla de perfiles, puede usar la función LAST_INSERT_ID() . Sin embargo, si la instrucción de inserción posterior se inserta en una tabla con su propia columna de incremento automático, el valor LAST_INSERT_ID() se actualizará al valor de esa tabla.

Para conservar el valor LAST_INSERT_ID() original, puede almacenar en una variable personalizada dentro de la transacción.

Usando variables MySQL:

INSERT ...
SELECT LAST_INSERT_ID() INTO @mysql_variable_here;
INSERT INTO table2 (@mysql_variable_here, ...);

Usando variables de lenguaje:

// PHP example
$mysqli->query("INSERT INTO table1 ...");
$userid = $mysqli->insert_id;
$mysqli->query("INSERT INTO table2 ($userid, ...)");

Precaución

Es importante considerar la coherencia de la base de datos al insertar en varias tablas. Si se interrumpen, las transacciones garantizan que todas las consultas se ejecuten por completo o no se ejecuten en absoluto. Sin transacciones, las inserciones parciales pueden generar inconsistencias.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3