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 ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBavant
2023-08-25 21:01:131384parcourir

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)

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)

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 ;

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)

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;

Cela produira le résultat suivant -

+-----------+------------------+
| StudentId | StudentFirstName |
+-----------+------------------+
| 1         | Tom              |
+-----------+------------------+
1 row in set (0.00 sec)

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

mysql> select *from DemoTable2;

Ceci produire le résultat suivant-

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | Tom        | 38        |
+----------+------------+-----------+
1 row in set (0.00 sec)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer