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

MySQLにストアドプロシージャが存在するかどうかを確認するにはどうすればよいですか?


まず、ストアドプロシージャを作成しましょう-

mysql> DELIMITER //
mysql> CREATE PROCEDURE ExtenddatesWithMonthdemo(IN date1 datetime, IN NumberOfMonth int )
   -> BEGIN
   -> SELECT DATE_ADD(date1,INTERVAL NumberOfMonth MONTH) AS ExtendDate;
   -> END;
   -> //
Query OK, 0 rows affected (0.20 sec)
mysql> DELIMITER ;

次に、ヘルプSHOWCREATEコマンドを使用してストアドプロシージャが存在するかどうかを確認します。

クエリは次のとおりです-

mysql> SHOW CREATE PROCEDURE ExtenddatesWithMonthdemo;
The following is the output displaying the details of the stored procedure we created above:
+--------------------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Procedure                | sql_mode                                   | Create Procedure                                                                                                                        | character_set_client | collation_connection | Database Collation |
+--------------------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| ExtenddatesWithMonthdemo | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | CREATE DEFINER = `root`@`%` PROCEDURE `ExtenddatesWithMonthdemo`(IN date1 datetime, IN NumberOfMonth int )
BEGIN
SELECT DATE_ADD(date1,INTERVAL NumberOfMonth MONTH) AS ExtendDate;
END | utf8 | utf8_general_ci | utf8_general_ci |
+--------------------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)

CALLコマンドを使用して、ストアード・プロシージャーを呼び出します。クエリは次のとおりです-

mysql> call ExtenddatesWithMonthdemo('2019-02-13',6);

出力

+---------------------+
| ExtendDate          |
+---------------------+
| 2019-08-13 00:00:00 |
+---------------------+
1 row in set (0.10 sec)
Query OK, 0 rows affected (0.12 sec)

  1. MySQLストアドプロシージャでDELIMITERを正しく使用するにはどうすればよいですか?

    正しい方法は次のとおりです- DELIMITER // CREATE PROCEDURE yourStoredProcedureName() BEGIN  IF  yourCondition then      yourStatement1 ; else     yourStatement2 ; END IF ; END // DELIMITER ; ここで例を見て、ストアドプロシージャを作成しましょう- mysql> DELIMITER // mysql> CREATE PROCEDURE delimit

  2. MySQLのバージョンを確認する方法

    ユーザーが現在実行しているMySQLのバージョンを確認する方法を理解しましょう- コンソールでクエリを入力する前に、ユーザーがサーバーに接続していることを確認することが重要です。 MySQLのバージョンを確認する 以下のクエリは、使用されているサーバーのバージョン番号と現在の日付を示します。 mysql> SELECT VERSION(), CURRENT_DATE; 注: 関数「VERSION()」および「CURRENT_DATE」は大文字と小文字を区別しません。これは、「version()」、「Version()」、「vERsion()」を意味し、すべて同じ意味です。同じことが