ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。