Maison > base de données > tutoriel mysql > Dans MySQL, pouvons-nous insérer des enregistrements dans deux tables simultanément à l'aide de procédures stockées ?

Dans MySQL, pouvons-nous insérer des enregistrements dans deux tables simultanément à l'aide de procédures stockées ?

WBOY
Libérer: 2023-08-25 21:01:13
avant
1346 Les gens l'ont consulté

Dans MySQL, pouvons-nous insérer des enregistrements dans deux tables simultanément à laide de procédures stockées ?

Oui, vous pouvez utiliser des procédures stockées pour insérer dans deux tables en une seule requête. Créons d'abord une table −

mysql> create table DemoTable
(
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentFirstName varchar(20)
);
Query OK, 0 rows affected (0.56 sec)
Copier après la connexion

Voici la requête pour créer la deuxième table-

mysql> create table DemoTable2
(
   ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ClientName varchar(20),
   ClientAge int
);
Query OK, 0 rows affected (0.76 sec)
Copier après la connexion

Ce qui suit est la requête pour créer la procédure stockée à insérer dans les deux tables créées ci-dessus-

mysql> DELIMITER //
   mysql> CREATE PROCEDURE insert_into_twoTables(name varchar(100),age int)
      BEGIN
         INSERT INTO DemoTable(StudentFirstName) VALUES(name);
         INSERT INTO DemoTable2(ClientName,ClientAge) VALUES(name,age);
      END
      //
   Query OK, 0 rows affected (0.14 sec)
mysql> DELIMITER ;
Copier après la connexion

Appelez maintenant avec l'aide de la commande CALL Procédure stockée -

mysql> call insert_into_twoTables('Tom',38);
Query OK, 1 row affected, 1 warning (0.41 sec)
Copier après la connexion

Vérifie si les enregistrements sont insérés dans deux tables.

La requête pour afficher tous les enregistrements de la première table est la suivante : 

mysql> select *from DemoTable;
Copier après la connexion

Cela produira le résultat suivant -

+-----------+------------------+
| StudentId | StudentFirstName |
+-----------+------------------+
| 1         | Tom              |
+-----------+------------------+
1 row in set (0.00 sec)
Copier après la connexion

Voici la requête pour afficher tous les enregistrements de la deuxième table :

mysql> select *from DemoTable2;
Copier après la connexion

Ceci produire le résultat suivant-

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | Tom        | 38        |
+----------+------------+-----------+
1 row in set (0.00 sec)
Copier après la connexion

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:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal