MySQLで区切り文字を使用してストアドプロシージャを作成する
ストアドプロシージャは、createprocedureコマンドを使用して作成できます。構文は次のとおりです-
delimiter // CREATE PROCEDURE yourStoreProcedureName() BEGIN Declare variable here The query statement END // delimiter //
上記の構文を適用して、ストアドプロシージャを作成します。クエリは次のとおりです-
mysql> use test; Database changed mysql> delimiter // mysql> create procedure Sp_callTableStoredProcTable() −> begin −> select *from StoredProcTable; −> end // Query OK, 0 rows affected (0.54 sec)
次に、;で区切り文字を変更する必要があります。ストアドプロシージャを呼び出す-
mysql> delimiter ;
CALLコマンドを使用してストアドプロシージャを呼び出すことができます。構文は次のとおりです-
CALL yourStoredProcedureName();
上記のストアドプロシージャは、以下のクエリに示すように、CALLコマンドを使用して呼び出すことができます-
mysql> call Sp_callTableStoredProcTable();
以下は出力です-
+-----------+------+ | FirstName | Age | +-----------+------+ | John | 23 | | Bob | 24 | | David | 20 | +-----------+------+ 3 rows in set (0.03 sec) Query OK, 0 rows affected (0.06 sec)
上記では、テーブル「StoredProcTable」を使用しており、このテーブルには3つのレコードがあります。ストアドプロシージャを使用してすべてのレコードを表示しました。
ストアドプロシージャを使用して、テーブルにあるレコードの数を確認できます-
mysql> delimiter // mysql> create procedure CountingRecords() −> begin −> select count(*) as AllRecords from StoredProcTable; −> end // Query OK, 0 rows affected (0.19 sec) mysql> delimiter ;
CALLコマンドを使用してストアドプロシージャを呼び出します。クエリは次のとおりです-
mysql> call CountingRecords();
次の出力は、レコードの数を表示します-
+------------+ | AllRecords | +------------+ | 3 | +------------+ 1 row in set (0.31 sec) Query OK, 0 rows affected (0.33 sec)
-
MySQL Workbenchを使用してストアドプロシージャを作成しますか?
まず、ストアドプロシージャを作成しましょう。以下は、MySQLWorkbenchを使用してストアドプロシージャを作成するためのクエリです。 use business; DELIMITER // DROP PROCEDURE IF EXISTS SP_GETMESSAGE; CREATE PROCEDURE SP_GETMESSAGE() BEGIN DECLARE MESSAGE VARCHAR(100); SET MESSAGE="HELLO"; SELECT CONCAT(MESSAGE,' ','MYSQL!!!!'); END //
-
SHOW CREATE TABLEを実行するためのMySQLストアドプロシージャ?
ストアード・プロシージャーでSHOW CREATE TABLEを実行するには、SHOWCREATETABLEを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2011 -> ( -> StudentId int NOT NULL AUTO_INCREMENT, -> StudentName varchar(20), -> StudentAge int, -> StudentCo