シーケンス関数を実装する 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 を通じていくつかの一般的なブラウザを判別する方法

推薦する

初心者向け入門講座⑧:記事サイトを簡単に作る

前回の投稿では、Web ページの作成方法について説明しました。Web サイトは多くの Web ページ...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

Linux入力サブシステムフレームワーク原理の分析

入力サブシステムフレームワークLinux 入力サブシステムは、上から下に向かって、入力サブシステム ...

Nginx ログ出力のリクエスト後パラメータを設定する方法

【序文】当プロジェクトの SMS 機能は、第三者に接続することです。第三者からの元の受信確認要求は ...

CSS を使用して半透明の背景と不透明なテキストを実現する例

この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...

Docker インストール tomcat dubbo-admin インスタンス スキル

1. tomcatイメージをダウンロードする docker pull tomcat:8.5.29 2...

Linuxでテキスト比較を実現するコツを教えます

序文コードを書く過程で、必然的にコードに何らかの変更を加えることになります。しかし、変更を加えるとき...

CentOS8でyumソースを変更した後にウェアハウスキャッシュの同期に失敗する問題の詳細な説明

問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...

js を使用して年カルーセル選択効果をネイティブに実装する例

序文js を使用して、年の回転選択効果を実現します。では早速、写真を見てみましょう。 1. アイデア...

MySQLからOracleへのリアルタイム同期ソリューションの詳細な説明

1 要件の概要MySQL5.6本番データベースの複数のテーブルのデータは、Oracle11gデータウ...

シンプルな計算機を実装する JavaScript コード

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

新しい公式サイトはオンラインですが、携帯電話で新しい公式サイトにアクセスすると、エクスペリエンスが非...

Vueは視覚的なドラッグページエディタを実装します

目次ドラッグアンドドロップの実装ドラッグイベントドラッグして開始リリースゾーンでの移動境界処理、角度...

Vite と Vue CLI の長所と短所

Vue エコシステムには Vite と呼ばれる新しいビルド ツールがあり、Vue CLI よりも 1...

フロントエンドの上級者向けコースでは、JavaScript のストレージ機能の使い方を学習します。

目次序文背景実施計画の考え方js ストレージ機能ソリューション設計やっと要約する序文どの SaaS ...