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

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

Patricia Arquette
Libérer: 2024-11-10 18:26:02
original
375 Les gens l'ont consulté

How to Insert Data into Multiple Tables in MySQL?

Insérer des données dans plusieurs tables avec MySQL

L'insertion de données simultanément dans plusieurs tables dans MySQL n'est pas réalisable à l'aide d'une seule requête. Cependant, il existe des approches alternatives pour y parvenir :

Traitement par lots

Vous pouvez exécuter plusieurs instructions INSERT par lots :

BEGIN;
INSERT INTO visits (visit_id, card_id) VALUES (NULL, 12131141);
INSERT INTO registration (registration_id, type, timestamp, visit_id)
VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID());
COMMIT;
Copier après la connexion

Procédure stockée

Vous pouvez également créer une procédure stockée qui encapsule les deux instructions INSERT :

CREATE PROCEDURE insert_into_multiple_tables(
  IN card_id INT
)
BEGIN
  INSERT INTO visits (visit_id, card_id) VALUES (NULL, card_id);
  INSERT INTO registration (registration_id, type, timestamp, visit_id)
  VALUES (NULL, 'in', UNIX_TIMESTAMP(), LAST_INSERT_ID());
END
Copier après la connexion

Vous pouvez puis exécutez la procédure stockée avec l'ID de carte souhaité :

CALL insert_into_multiple_tables(12131141);
Copier après la connexion

Contrôle transactionnel

Pour garantir l'intégrité des données, vous pouvez envelopper le lot ou la procédure stockée dans une transaction :

BEGIN TRANSACTION;
-- Execute INSERT statements here
COMMIT;
Copier après la connexion

Si l'une des instructions INSERT échoue, la transaction sera annulée, garantissant ainsi que les données de toutes les tables concernées restent cohérentes.

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