MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでselectステートメントを使用してストアドプロシージャを呼び出す方法は?


MySQLでは、FROM句でselectfromプロシージャを使用することはできません。 CALLコマンドを使用すると、その後SELECTステートメントを実行できます。

最初にテーブルを作成しましょう:

mysql> create table DemoTable2
   -> (
   -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> CustomerName varchar(100),
   -> ShippingDateTime datetime
   -> );
Query OK, 0 rows affected (0.66 sec)
>

ストアドプロシージャを作成するためのクエリは次のとおりです。

mysql> DELIMITER //
mysql> CREATE PROCEDURE insert_information(Name varchar(100),shippingtime datetime)
   -> BEGIN
   ->
   -> INSERT INTO DemoTable2(CustomerName,ShippingDateTime) VALUES(Name,shippingtime);
   -> END
   -> //
Query OK, 0 rows affected (0.16 sec)

mysql> DELIMITER ;

これで、callコマンドを使用してストアドプロシージャを呼び出すことができます:

mysql> call insert_information('Chris',NOW());
Query OK, 1 row affected, 1 warning (0.15 sec)

これは、ストアドプロシージャを呼び出した後、selectステートメントを使用してテーブルのレコードを表示するためのクエリです。

mysql> select *from DemoTable2;

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

+------------+--------------+---------------------+
| CustomerId | CustomerName | ShippingDateTime    |
+------------+--------------+---------------------+
| 1          | Chris        | 2019-04-08 15:03:07 |
+------------+--------------+---------------------+
1 row in set (0.00 sec)

  1. MySQLでCOUNTを使用してSELECTを実行するにはどうすればよいですか?

    COUNTでSELECTを実行するには、集計関数COUNT()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    (    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Name varchar(100),    Subject varchar(100)    ); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつ

  2. 「select」ステートメントを2回表示するMySQLプロシージャ

    理解するために、ストアドプロシージャを作成しましょう。ここでは、ストアドプロシージャに2つのselectステートメントがあります- mysql> DELIMITER // mysql> CREATE PROCEDURE select_statement()    -> BEGIN    ->    SELECT "HI" AS `FIRST VALUE`;    ->    SELECT "HELLO" AS `SECOND