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

推薦する

JavaScript イベントの概念の詳細な説明 (静的登録と動的登録の区別)

目次js のイベントイベントタイプ一般的なイベントイベント登録静的および動的登録の例onload 読...

MySQL 5.7 でルートパスワードを変更する方法

MySQL 5.7 以降では、多くのセキュリティ更新が追加されました。旧バージョンのユーザーは慣れて...

WAMPにインストールするとMySQLが起動できるが、再起動後に起動できなくなる問題の解決方法

初めてwampをインストールした後、すべてのサービスが正常に使用できますが、再起動するとwampのア...

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

この記事では、参考までにMySQL 5.7.13 winx64のインストールと設定方法のグラフィック...

Ubuntu 18.04 のログインループ/ブートインターフェイスで停止/グラフィカルインターフェイスに入ることができない問題を解決する方法

原因: NVIDIA グラフィック カード ドライバーが破損している解決:コマンドラインモードで再起...

VPS はオフライン ダウンロード サーバーを構築します (ネットワーク ディスクの時代以降)

モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...

HTML テーブル マークアップ チュートリアル (43): テーブル ヘッダーの VALIGN 属性

垂直方向では、ヘッダーの配置を上、中央、下に設定できます。基本的な構文構文Top は上、Middle...

フローチャートとUIフローの違い

UI デザインにおける多くの概念は言葉で言えば似ているように見えるかもしれませんが、実際には大きく異...

RedHat 6.5/CentOS 6.5 に MySQL 5.7.20 をインストールするための詳細なチュートリアル

rpmインストールパッケージをダウンロードするMySQL公式サイト: https://dev.mys...

MySQL インデックスの長さ制限の原理の分析

この記事は主に、MySQL インデックスの長さ制限の原理の分析を紹介します。サンプル コードを通じて...

MySQL 8.0.15 winx64 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15 winx64 圧縮パッケージのインストールと設定方法を参考ま...

Linuxグループの基礎知識ポイントまとめ

1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...

KVM ベースの SRIOV パススルー構成とパフォーマンス テストの詳細な説明

SRIOVの導入、VFパススルー構成、パケット転送速度性能テスト目次1. SRIOVの紹介2. 環境...

CSS で複数の境界線を実装するためのヒント

1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...

MySQL Server 8.0.3 のインストールと設定方法のグラフィックチュートリアル

この文書はMySQL Server 8.0.3のインストールと設定方法を参考のために記録したものです...