シーケンス関数を実装する MySQL コード

シーケンス関数を実装する MySQL コード

MySQLはシーケンス関数を実装する

1. シーケンスレコードテーブルを作成する

テーブル `sys_sequence` を作成します (
 `seq_name` varchar(50) 文字セット latin1 COLLATE latin1_bin NOT NULL,
 `min_value` int(11) NULLではない、
 `max_value` int(11) NULLではない、
 `current_value` int(11) NOT NULL,
 `increment_value` int(11) NOT NULL デフォルト '1',
 主キー (`seq_name`)
) エンジン=InnoDB デフォルト文字セット=utf8 COLLATE=utf8_bin;

2. シーケンスの基本機能を確立する

区切り文字 $$
CREATE DEFINER=`root`@`%` FUNCTION `_nextval`(name varchar(50)) RETURNS int(11)
始める 
_cur int を宣言します。
_maxvalue int を宣言します。 -- 最大値を受け取ります。 _increment int を宣言します。 -- 増分ステップの数を受け取ります。 set _increment = (select increment_value from sys_sequence where seq_name = name);
_maxvalue を設定します (seq_name = name の場合、sys_sequence から max_value を選択します)。
_cur を設定します (seq_name = name の場合、sys_sequence から current_value を選択)。 
sys_sequence を更新 -- 現在の値を更新します。current_value = _cur + increment_value を設定します。 
ここで、seq_name = name です。 
if(_cur + _increment >= _maxvalue) then -- 両方が最大値に達したかどうかを確認し、sys_sequenceを更新します。 
    現在の値 = 最小値を設定します 
    ここで、seq_name = name です。
終了の場合;
_cur を返します。 
終わり$$
区切り文字 ;

3. 作成したいシーケンスを挿入します

`mydb`.`sys_sequence` に挿入します
(`seq_name`,
`最小値`、
`max_value`、
`現在の値`、
`増分値`)
価値観
('seq_name1', 1, 99999999, 1, 1);

4. シーケンスを使用する

_nextval('seq_name1') を選択します。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQL ベースのシーケンス実装方法
  • MySQL で自己増加シーケンスを作成するチュートリアル
  • MySQLで自動成長シーケンスSEQUENCEを設定する方法

<<:  Docker基盤技術の適用に関する詳細な説明 名前空間Cgroup

>>:  JavaScript を使用して userAgent を通じていくつかの一般的なブラウザを判別する方法

推薦する

Dockerはnextcloudを使用してプライベートBaiduクラウドディスクを構築します

突然、ドキュメントの保存と共同作業のためのプライベート サービスを構築する必要がありました。多くの場...

MYSQLデータベーステーブル構造の最適化方法の詳細な説明

この記事では、例を使用して、MYSQL データベース テーブル構造を最適化する方法を説明します。ご参...

MySQLで行を列に変換する方法

MySQL の行から列への操作いわゆる行から列への操作は、テーブルの行情報を列情報に変換することです...

CentOS7.5 の MySQL8.0.19 のインストールチュートリアルの詳細な手順

1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...

IE のテキストモード! DOCTYPE の役割の紹介

前の記事で説明したフォームの自動入力の問題を解決した後、新しい問題が発生しました。ページの一部のスタ...

MySQL の一般的なログの概要

序文: MySQL システムには、さまざまな種類のログが存在します。さまざまなログにはそれぞれ独自の...

VMwareがLinuxシステムをインストールして起動した後に黒い画面が表示される問題を解決する

1. 設置環境1. HUAWEI mate x CPU i5 82500u、8g メモリ、独立グラフ...

MySQL の主キーとトランザクションの詳細な説明

目次1. MySQLの主キーとテーブルフィールドに関するコメント1. 主キーと自動増分2. テーブル...

MySQL の時間設定に関する考慮事項の詳細な要約

時間は本当に存在するのでしょうか?時間は人間が考え出した概念に過ぎず、物事の変化を測る基準に過ぎない...

Windows システムで MySQL が起動しない場合の一般的な解決策

MySQL 起動エラーWindows 10 に MySQL をインストールする前は、net star...

時間に基づいて日付をクエリするためのMySQL最適化テクニック

たとえば、昨日新規登録されたユーザーを照会するには、次の 2 つの書き方があります。 説明する ch...

IIS 7.5では、HTMLはSHTMLのようなinclude関数(モジュールマッピングの追加)をサポートします。

最初はたくさんのエラーを見つけましたが、実際には非常に簡単です。shtm の元の設定を参照するだけで...

Vueコンポーネントのカスタムイベントの詳細な説明

目次要約する <テンプレート> <div> 要素 <h2>{{メ...

HTML テーブル境界コントロールの詳細な説明

上の境界線のみを表示する <table frame=above>下の境界線のみを表示する...

CSS3のtext-fill-colorプロパティの詳細な説明

text-fill-color とは何を意味しますか?文字通りの意味から言えば、「テキストの塗りつぶ...