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

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)

  1. 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 //

  2. SHOW CREATE TABLEを実行するためのMySQLストアドプロシージャ?

    ストアード・プロシージャーでSHOW CREATE TABLEを実行するには、SHOWCREATETABLEを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2011    -> (    -> StudentId int NOT NULL AUTO_INCREMENT,    -> StudentName varchar(20),    -> StudentAge int,    -> StudentCo