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!