MySQLでストアドプロシージャを編集したり、ストアドプロシージャを変更したりする必要がある場合があります。 MySQLALTERPROCEDUREステートメントを使用してストアドプロシージャを編集する方法は次のとおりです。
MySQLAlterストアドプロシージャ
ALTERPROCEDUREステートメントを使用してMySQLのストアドプロシージャを変更する手順は次のとおりです。
MySQLに次のストアドプロシージャがあるとします。
mysql> DELIMITER //
CREATE PROCEDURE get_orders()
BEGIN
SELECT * FROM orders;
END //
DELIMITER ;
mysql> call get_orders;
+----+------------+--------+----------+
| id | order_date | amount | sequence |
+----+------------+--------+----------+
| 1 | 2020-08-01 | 250 | 1 |
| 2 | 2020-08-02 | 125 | 4 |
| 3 | 2020-08-03 | 300 | 9 |
+----+------------+--------+----------+
ボーナスリード:MySQLリストすべての手順
MySQLコマンドラインでストアドプロシージャを編集する方法
MySQLはALTERPROCEDUREステートメントを提供しますが、ストアドプロシージャの本体またはパラメータを変更することはできません。ストアドプロシージャの特性を変更することしかできません
これがALTERPROCEDUREの構文です
ALTER PROCEDURE proc_name [characteristic ...]
characteristic: {
COMMENT 'string'
| LANGUAGE SQL
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
}
これは、ALTERPROCEDUREクエリを使用してコメントを追加する例です。
ALTER PROCEDURE get_orders COMMENT 'test comment';
ボーナス読み取り:MySQLリセットルートパスワード
ただし、MySQLコマンドラインでストアドプロシージャのクエリ、本文、またはパラメータを変更する場合は、DROP PROCEDUREを実行してから、新しい定義でCREATEPROCEDUREを実行する必要があります。上記で定義したget_ordersストアドプロシージャのクエリを更新する例を次に示します。
mysql> drop procedure get_orders;
mysql> DELIMITER //
CREATE PROCEDURE get_orders()
BEGIN
SELECT order_date, amount FROM orders;
END //
DELIMITER ;
mysql> call get_orders;
+------------+--------+
| order_date | amount |
+------------+--------+
| 2020-08-01 | 250 |
| 2020-08-02 | 125 |
| 2020-08-03 | 300 |
+------------+--------+
うまくいけば、MySQLでストアドプロシージャを変更できるようになりました。
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。