ホームページ  >  記事  >  データベース  >  MySQL では、ストアド プロシージャを使用して 2 つのテーブルに同時にレコードを挿入できますか?

MySQL では、ストアド プロシージャを使用して 2 つのテーブルに同時にレコードを挿入できますか?

WBOY
WBOY転載
2023-08-25 21:01:131314ブラウズ

MySQL では、ストアド プロシージャを使用して 2 つのテーブルに同時にレコードを挿入できますか?

はい、ストアド プロシージャを使用して、1 つのクエリで 2 つのテーブルに挿入できます。まずテーブルを作成しましょう -

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

2 番目のテーブルを作成するクエリは次のとおりです -

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)

以下は、上で作成した 2 つのテーブルに挿入するストアド プロシージャを作成するクエリです -

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 ;

CALL コマンドを使用してストアド プロシージャを呼び出します。 -

mysql> call insert_into_twoTables('Tom',38);
Query OK, 1 row affected, 1 warning (0.41 sec)

レコードが両方のテーブルに挿入されているかどうかを確認します。

最初のテーブルのすべてのレコードを表示するクエリは次のとおりです-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

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

次は、すべてのレコードを表示するクエリです2 番目のテーブルのレコード:

mysql> select *from DemoTable2;

これにより、次の出力が生成されます -

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

以上がMySQL では、ストアド プロシージャを使用して 2 つのテーブルに同時にレコードを挿入できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。