MySQL イベント変更イベント (ALTER EVENT)、イベントの無効化 (DISABLE)、イベントの有効化 (ENABLE)、イベント名の変更、およびデータベース イベントの移行操作の詳細な説明

MySQL イベント変更イベント (ALTER EVENT)、イベントの無効化 (DISABLE)、イベントの有効化 (ENABLE)、イベント名の変更、およびデータベース イベントの移行操作の詳細な説明

この記事では、例を使用して、MySQL イベントの変更 (ALTER EVENT)、イベントの無効化 (DISABLE)、イベントの有効化 (ENABLE)、イベントの名前変更、およびデータベース イベントの移行の操作について説明します。ご参考までに、詳細は以下の通りです。

MySQL では既存のイベントのさまざまなプロパティを変更できることを知っておく必要があります。既存のイベントを変更する場合は、次のように ALTER EVENT ステートメントを使用できます。

ALTER EVENT イベント名
スケジュール通りのスケジュール
完了時に保存しない
新しいイベント名に名前を変更
有効 | 無効
する
 イベント本体

ALTER EVENT ステートメントは、既存のイベントに対してのみ機能します。存在しないイベントを変更しようとすると、MySQL はエラー メッセージを発行します。そのため、イベントを変更する前に、まず SHOW EVENTS ステートメントを使用してイベントの存在を確認する必要があります。

mysql> testdb からのイベントを表示します。
+--------+---------------+----------------+------------+----------+----------+----------------------+----------------+--------+-----------+----------------------+---------------------+
| Db | 名前 | 定義者 | タイム ゾーン | タイプ | 実行時刻 | 間隔値 | 間隔フィールド | 開始 | 終了 | ステータス | 発信元 | character_set_client | collat​​ion_connection | データベース照合 |
+--------+---------------+----------------+------------+----------+----------+----------------------+----------------+--------+-----------+----------------------+---------------------+
| testdb | test_event_02 | root@localhost | SYSTEM | ONE TIME | 2017-08-03 04:24:48 | NULL | NULL | NULL | NULL | 無効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
+--------+---------------+----------------+------------+----------+----------+----------------------+----------------+--------+----------+----------------------+----------------------+----------------------+
セット内の1行

ALTER EVENT ステートメントのさまざまな機能の使用方法を示すために、1 分ごとにメッセージ テーブルに新しいレコードを挿入するサンプル イベントを作成します。

testdbを使用します。
イベントの作成 test_event_04
スケジュールどおり1分ごとに
する
  メッセージに INSERT INTO (メッセージ、created_at)
  VALUES('ALTER EVENT ステートメントをテストします',NOW());

イベントを 2 分ごとに実行するように変更してみましょう。

イベントの変更 test_event_04
スケジュールどおりに 2 分ごとに実行します。

新しいロジックを指定してイベント本体を変更することもできます。

イベントの変更 test_event_04
する
  メッセージに INSERT INTO (メッセージ、created_at)
  VALUES('イベントからのメッセージ',NOW());
-- テーブル内のデータをクリアし、メッセージを切り捨てます。

変更が完了したら、2 分待ってからメッセージ テーブルを再度表示します。

mysql> SELECT * FROM メッセージ;
+----+--------------------+---------------------+
| ID | メッセージ | 作成日時 |
+----+--------------------+---------------------+
| 1 | イベントからのメッセージ | 2017-08-03 04:46:47 |
| 2 | イベントからのメッセージ | 2017-08-03 04:48:47 |
+----+--------------------+---------------------+
2行セット

ALTER EVENT ステートメントの後に DISABLE キーワードを使用すると、イベントを無効にすることができます。

イベントの変更 test_event_04
無効にする;

SHOW EVENTS ステートメントを使用してイベントのステータスを表示することもできます。

mysql> testdb からのイベントを表示します。
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
| Db | 名前 | 定義者 | タイム ゾーン | タイプ | 実行時刻 | 間隔値 | 間隔フィールド | 開始 | 終了 | ステータス | 発信元 | character_set_client | collat​​ion_connection | データベース照合 |
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
| testdb | test_event_02 | root@localhost | SYSTEM | ONE TIME | 2017-08-03 04:24:48 | NULL | NULL | NULL | NULL | 無効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
| testdb | test_event_04 | root@localhost | SYSTEM | 定期的 | NULL | 2 | 分 | 2017-08-03 04:44:47 | NULL | 無効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
2行セット

ALTER EVENT ステートメントの後に ENABLE キーワードを使用してイベントを有効にすることができます。

イベントの変更 test_event_04
有効にする;

イベントのステータスを確認します:

mysql> testdb からのイベントを表示します。
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
| Db | 名前 | 定義者 | タイム ゾーン | タイプ | 実行時刻 | 間隔値 | 間隔フィールド | 開始 | 終了 | ステータス | 発信元 | character_set_client | collat​​ion_connection | データベース照合 |
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
| testdb | test_event_02 | root@localhost | SYSTEM | ONE TIME | 2017-08-03 04:24:48 | NULL | NULL | NULL | NULL | 無効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
| testdb | test_event_04 | root@localhost | SYSTEM | 定期的 | NULL | 2 | 分 | 2017-08-03 04:44:47 | NULL | 有効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
2行セット

ALTER EVENT を使用して既存のイベントの名前を変更してみましょう。

イベントの変更 test_event_04
名前を test_event_05 に変更します。

イベントのステータスを表示するには:

mysql> testdb からのイベントを表示します。
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
| Db | 名前 | 定義者 | タイム ゾーン | タイプ | 実行時刻 | 間隔値 | 間隔フィールド | 開始 | 終了 | ステータス | 発信元 | character_set_client | collat​​ion_connection | データベース照合 |
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
| testdb | test_event_02 | root@localhost | SYSTEM | ONE TIME | 2017-08-03 04:24:48 | NULL | NULL | NULL | NULL | 無効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
| testdb | test_event_05 | root@localhost | SYSTEM | 定期的 | NULL | 2 | 分 | 2017-08-03 04:44:47 | NULL | 有効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
+--------+---------------+----------------+------------+-----------+----------------------+--------------------------------+------+----------+----------+----------------------+----------------------+
2行セット

次に、RENAME TO 句を使用して、イベントをあるデータベースから別のデータベースに移動できます。

イベント testdb.test_event_05 の変更
名前を newdb.test_event_05 に変更します。

イベントのステータスを確認しましょう:

mysql> newdb からのイベントを表示します。
+-------+---------------+----------------+------------+------------+------------+----------------+-------+-----------+-----------+----------------------+---------------------+
| Db | 名前 | 定義者 | タイム ゾーン | タイプ | 実行時刻 | 間隔値 | 間隔フィールド | 開始 | 終了 | ステータス | 発信元 | character_set_client | collat​​ion_connection | データベース照合 |
+-------+---------------+----------------+------------+------------+------------+----------------+-------+-----------+-----------+----------------------+---------------------+
| newdb | test_event_05 | root@localhost | SYSTEM | 定期的 | NULL | 2 | 分 | 2017-08-03 04:44:47 | NULL | 有効 | 0 | utf8 | utf8_general_ci | utf8_general_ci |
+-------+---------------+----------------+------------+------------+------------+----------------+-------+-----------+-----------+----------------------+---------------------+
セット内の1行

さて、この記録についてはこれですべてです。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL インデックス操作スキルの概要」、「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLでテーブル名を変更する方法と注意すべき点
  • MySQLデータベースの名前を高速かつ安全に変更する方法(3種類)
  • MYSQLでプロシージャの名前を変更する方法の詳細な説明
  • MySQL で SQL ステートメントを使用してフィールドの名前を変更する
  • MySQL データベースの名前変更ステートメントの共有
  • Pythonを使用してMySqlデータベースを操作する方法を教えます
  • Pythonを使ってMySQLを操作する小さなツールを開発する
  • Python の基礎: MySQL データベースの操作
  • インターフェイス実装サンプルコード付き Python チャット ルーム (tkinter、Mysql、Treading、ソケット)
  • MySQLデータベースを操作するPythonの簡単な手順を共有する
  • Python SQL ステートメントを使用して、MySQL データベースで複数条件のあいまいクエリを実行するアイデアの詳細な説明
  • tkinter+MySQL を使用して Python で追加、削除、変更、チェックを実装する
  • Pythonを使用してMySQLデータベースの名前を素早く変更する

<<:  Linux で Bash 環境変数を設定する方法

>>:  jQuery を使用してカルーセル効果を実装する

推薦する

MySQL はどのようにしてデータの整合性を確保するのでしょうか?

オンライン ビジネスにとってデータの一貫性と整合性が重要であることは明らかです。データが失われないよ...

Vueはシンプルなデータ双方向バインディングを実装します

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。初心者...

ReactはExcelファイルのインポートとエクスポートを実装します

目次プレゼンテーション層ビジネスレイヤーコアプラグイン xlsx ExcelインポートExcelエク...

VMware 仮想マシン ubuntu18.04 インストール チュートリアル

インストール手順1. 仮想マシンを作成する 2. [カスタム(詳細)]を選択し、[次へ]をクリックし...

MySQL で重複行を見つけて削除する方法

目次1. 重複行を見つける方法2. 重複行を削除する方法3. 複数の列で重複を見つける方法4. クエ...

Centos 7 sshd の変更 | ルートログインの禁止と sshd ポートスクリプトの定義

1. 新しいユーザーwwweee000を作成します [root@localhost ~]# user...

MySQL 最適化の概要 - クエリエントリの合計数

1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...

Linux 仮想メモリ設定のチュートリアルと実践

仮想メモリとは何ですか?まずはWikipediaからの紹介文をそのまま引用します。仮想メモリは、コン...

MySQLクエリの基本的なクエリ操作の学習

序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...

Docker Compose のインストールと使用手順

目次1. Docker Compose とは何ですか? 2. Docker Composeのインスト...

React 非親子コンポーネントパラメータ渡しのサンプルコード

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。 ...

antd ツリーと親子コンポーネント間の値転送問題について (React のまとめ)

プロジェクト要件: 製品ツリー ノードをクリックすると、そのノードのすべての親ノードが取得され、表に...

MySQL 起動時に「サーバーは PID ファイルを更新せずに終了しました」というエラーが報告される理由の詳細な分析

多くの人が MySQL の起動時にこのエラーに遭遇しています。まず、このエラーの前提は、サービス ス...

mysql 8.0.16 winx64.zip インストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16 winx64.zipのインストールと設定方法の具体的なコード...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

この記事では、MySQL 8.0.16 winx64のインストールと設定の具体的な方法を記載します。...