Navicat でストアド プロシージャ、トリガーを作成し、カーソルを使用する簡単な例 (画像とテキスト)

Navicat でストアド プロシージャ、トリガーを作成し、カーソルを使用する簡単な例 (画像とテキスト)

1. テーブルを作成する<br /> まず、2 つのテーブル (users テーブルと number テーブル) を作成します。具体的な設計は次のとおりです。
1.jpg
2.jpg

2. ストアド プロシージャ<br /> ユーザー テーブルにデータを挿入するストアド プロシージャを作成します。作成プロセスは次のとおりです。
3.jpg
4.jpg
5.jpg

コードは次のとおりです

始める
 #ルーチン本体はここに記述します...
 n bigint を宣言します。
 n = 201121029684 に設定します。
 n <= 201121029694 の場合
 する
 ユーザ(student_ID)の値(n)に挿入します。
 n = n + 1 と設定します。
 終了しながら;
終わり

6.jpg
ストアド プロシージャを実行すると、次のようにユーザー テーブルのデータが表示されます。
7.jpg

ストアド プロシージャ全体が記述されました。もちろん、これは非常に単純な例であり、参考用です。

3. トリガー

トリガーを書き込む前に、まずユーザーデータをクリアします

テーブルユーザーを切り捨てます。

これで 2 つのテーブルができました。必要なのは、ユーザーにデータを挿入すると、それに応じて番号も変更されるようにすることです。

たとえば、数値テーブルには id=1、num=0 という初期データがあります。

ユーザーにデータを挿入すると、数値テーブルの num フィールドが 1 増加し、ユーザー数が記録されます。

この小さな機能を実装してみましょう。

ユーザーテーブルを右クリックし、「テーブルのデザイン」を選択します。

8.jpg
トリガーオプションを選択
9.jpg
10.jpg
11.jpg

始める
 更新番号
 num = (users から count(*) を選択) を設定します。
終わり

保存した後、users テーブルに新しいデータを追加し、number のデータを確認します。number テーブルのデータも魔法のように変更されていることがわかります。ぜひ試してみてください。

追記: ストアド プロシージャはプログラマー自身が実行する必要がありますが、トリガーは、その名前が示すように自動的にトリガーされます。

4. カーソルの使用<br /> ここで実行したいのは、student_ID フィールドに 100 を追加することです。この例を使用して、カーソルの使用方法を簡単に説明します。

ストアドプロシージャを作成します。作成方法については上記の手順を参照してください。ストアド プロシージャ コードは次のとおりです。

12.jpg

始める
 #ルーチン本体はここに記述します...

 tmp bigint のデフォルトを 0 と宣言します。
 宣言 cur CURSOR FOR SELECT student_ID FROM users; -- カーソルを定義します/*
 02000 次のいずれかの例外が発生しました: 
 SELECT INTO ステートメントまたは INSERT ステートメントのサブクエリの結果は空のテーブルになります。 
 検索された UPDATE または DELETE ステートメント内で識別された行数は 0 です。 
 FETCH ステートメントで参照されるカーソル位置は、結果テーブルの最後の行の後にあります。


 */
 SQLSTATE '02000' の CONTINUE HANDLER を宣言し、tmp を 0 に設定します。 


 OPEN cur; -- カーソルを開きます FETCH cur INTO tmp; -- カーソルを 1 ステップ下に移動します WHILE (tmp != 0)
 する 
 select tmp; -- tmp を印刷すると、tmp がポインタのようなものだということが分かります。これは、先頭の最初の行を指します。カーソルが 1 ステップ移動すると、次のレコード行を指します。UPDATE users
 学生IDをtmp + 100に設定します
 ここで、student_ID = tmp;
 cur を tmp にフェッチします。
 終了しながら;

 CLOSE cur; -- カーソルを閉じる END

上記のストアド プロシージャを実行すると、ユーザーのデータが希望どおりに変更されていることがわかります。

以下もご興味があるかもしれません:
  • Navicat を使用してデータベースを作成し、JDBC に接続する方法
  • MySQL データベースのインストールと Navicat for MySQL の使用に関するチュートリアル
  • Navicat For MySQL の使い方に関する簡単なチュートリアル
  • Windows 7 で MySQL 8.0.16 をインストールして使用する場合、パスワードの変更と Navicat への接続に関する問題が発生する
  • Navicat を使用して csv ファイルを MySQL にインポートする
  • Navicateを使用してAlibaba Cloud Server上のMySQLに接続する
  • Navicat Premiumを使用してSQLServerデータをSQL形式にエクスポートする
  • Navicat 8 を使用してデータベースを作成し、データをインポートしてユーザーと権限を管理する [グラフィック方式]
  • Navicatの簡単な使い方の詳しい説明

<<:  JavaScript における clientWidth、offsetWidth、scrollWidth の違い

>>:  UI を通じて Docker を管理する方法

推薦する

テーブルの動的な色の変更を実現するJavaScript

この記事では、テーブルの動的な色の変更を実現するためのJavaScriptの具体的なコードを参考まで...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

dockerプライベート倉庫の構築と利用の詳細説明

1. リポジトリイメージをダウンロードする docker プルレジストリ 2. プライベートウェアハ...

MySQLカーソルの詳細な紹介

目次1. カーソルとは何ですか? 2. カーソルの使い方1. カーソルを宣言する2.カーソルを開く3...

一般的な docker コマンドの概要 (推奨)

1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...

MySQL データベースの最適化に関する 9 つのヒント

目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...

Windows 上の Docker にさまざまなソフトウェアをインストールする詳細なプロセス

1. MySQLをインストールする # docker で mysql をダウンロード docker ...

CSS3 で less のテキストの長い影を実装する

この記事では主に、CSS3 LESS で長いテキストの影を実装する方法を紹介し、皆さんと共有します。...

Linux での MySQL データベースのアンインストール

Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...

LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...

CSS の Flex レイアウトを使用してシンプルな縦棒グラフを作成する方法

以下は、Flex レイアウトを使用した棒グラフです。 HTML: <div class=&qu...

Vue Element UI カスタム説明リストコンポーネント

この記事の例では、Vue Element UIカスタム説明リストコンポーネントの具体的なコードを参考...

XML構文の詳細な説明

1. 文書化ルール1. 大文字と小文字が区別されます。 2. 属性値は引用符(一重引用符または二重引...

Linux の総合システム監視ツール dstat の詳細な例

オールラウンドなシステム監視ツール dstat dstat は、vmstat、iostat、nets...

Reactはconetxtを通じてマルチコンポーネント値転送関数を実装します

この関数の効果はvue的provide/injectに似ています。 contextを通じて反応できる...