Maison > base de données > tutoriel mysql > Comment insérer des données dans plusieurs tables MySQL simultanément ?

Comment insérer des données dans plusieurs tables MySQL simultanément ?

Mary-Kate Olsen
Libérer: 2024-12-17 11:46:25
original
536 Les gens l'ont consulté

How to Insert Data into Multiple MySQL Tables Simultaneously?

Insérer MySQL dans plusieurs tables : normalisation de la base de données

L'insertion de données dans plusieurs tables simultanément dans MySQL n'est pas directement prise en charge. Cependant, il existe des approches alternatives pour obtenir cette fonctionnalité.

Utilisation des transactions

Pour garantir la cohérence des données entre les tables, il est recommandé d'utiliser des transactions. Les transactions encapsulent une série de requêtes dans une seule unité, garantissant que toutes les requêtes réussissent ou échouent ensemble.

Voici un exemple utilisant des transactions :

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;
Copier après la connexion

Récupération de l'incrémentation automatique Valeur

Pour insérer l'identifiant d'incrémentation automatique de la table des utilisateurs dans la table des profils, vous pouvez utiliser le Fonction LAST_INSERT_ID(). Cependant, si l'instruction d'insertion suivante est insérée dans une table avec sa propre colonne d'incrémentation automatique, la valeur LAST_INSERT_ID() sera mise à jour avec la valeur de cette table.

Pour conserver la valeur LAST_INSERT_ID() d'origine, vous pouvez stocker dans une variable personnalisée au sein de la transaction.

Utilisation de MySQL Variables :

INSERT ...
SELECT LAST_INSERT_ID() INTO @mysql_variable_here;
INSERT INTO table2 (@mysql_variable_here, ...);
Copier après la connexion

Utilisation des variables de langage :

// PHP example
$mysqli->query("INSERT INTO table1 ...");
$userid = $mysqli->insert_id;
$mysqli->query("INSERT INTO table2 ($userid, ...)");
Copier après la connexion

Attention

Il est important de Tenez compte de la cohérence de la base de données lors de l'insertion dans plusieurs tables. En cas d'interruption, les transactions garantissent que toutes les requêtes sont exécutées entièrement ou pas du tout. Sans transactions, des insertions partielles peuvent entraîner des incohérences.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal