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

推薦する

MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

MACでMySQLの初期パスワードを忘れた問題を解決する方法を参考までに共有します。具体的な内容は次...

Reactフック入門チュートリアル

ステートフック例: 'react' から useState をインポートします。 関...

HTML テーブル マークアップ チュートリアル (18): テーブル ヘッダー

<br />ヘッダーはテーブルの最初の行を参照します。ヘッダー内のテキストは中央揃えで太...

CSS3アニメーションを使用して、小さい円から大きい円に拡大し、外側に広がる効果を実現する例

序文この記事では、CSS3アニメーションを使用して、円が小さいものから大きく拡大し、外側に広がる効果...

クリック範囲を拡大する入力チェックボックスを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー< div style = &quo...

JavaScriptコールバック関数の詳細な理解

目次序文クイックレビュー: JavaScript 関数関数とは何ですか?関数を宣言する関数の呼び出し...

MySQLカーソルの詳細な紹介

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

MySQLの累積集計原理と使用例の分析

この記事では、例を使用して、MySQL 累積集計の原理と使用方法を説明します。ご参考までに、詳細は以...

vue.config.js パッケージ最適化構成

Baiduの情報は多様すぎて目が回ります。心配しないでください。私はあなたのためにそれを体験しました...

Ubuntu 14.04 で QT5 をインストール、設定、アンインストールするための詳細な手順

1. 以前 QT5.13 バージョンをダウンロードしましたが、インストール後、Qtcreator を...

HTML テーブル マークアップ チュートリアル (15): テーブル タイトル

<br />このタグを使用すると、表のタイトルを直接追加し、タイトル テキストの配置プロ...

エージェントを介したzabbix監視プロセスとポートの詳細なプロセス

環境の紹介オペレーティングシステム: Centos 7.4 Zabbix バージョン: zabbix...

Vue3 でパンくず関数コンポーネントをカプセル化するいくつかの方法

目次序文1. パンくずリストはなぜ必要なのでしょうか? 2. 一次包装1. 実装のアイデア2. コー...

JavaScript でオブザーバー パターンを実装する方法

目次概要オブザーバーパターンの応用シナリオオブザーバーパターンの実装要約する概要オブザーバー パター...