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

推薦する

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...

モバイル端末の水平および垂直画面ビューポート検出を決定するための js のいくつかの方法

目次1. 異なるビューポートを取得する方法2. 水平画面と垂直画面のJavaScript検出3. 水...

docker に nacos をインストールしてデータベースを構成する詳細なチュートリアル

環境の準備 Docker環境 MySQL 5.7 (公式イメージはmysql8をサポートしていません...

Centos7 環境でソースコードから mysql5.7.16 をインストールする方法の詳細な説明

この記事では、centos7 環境でソース コードから mysql5.7.16 をインストールする方...

初心者向けウェブサイト構築ガイド⑦:美しいウェブサイトを作るのはとっても簡単

私はかつて、ウェブサイトを一度も構築したことのない人々が、初心者向けのウェブサイト構築方法に関する私...

ハイパーリンクを使用してリンクファイルを開く HTML 方式の紹介

a および href 属性 HTML では、英語ではアンカーと呼ばれるハイパーリンクを表すために &...

開発者がデータベースロックを詳細に理解する必要がある理由

1.ロックしますか? 1.1 ロックとは何ですか?ロックの本当の意味は、鍵またはコードで開くことがで...

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

Linux でマウントされたファイルシステムの種類を表示する方法

序文ご存知のとおり、Linux は ext4、ext3、ext2、sysfs、securityfs、...

CSSでフレックス配置を表示する(レイアウトツール)

display: flex レイアウトに関しては、深く理解している人もいますし、私も他の人の作業か...

フロントエンドJavaScriptのクラス

目次1. クラス1.1 コンストラクタ() 1.2 ゲッターとセッター1.3 これ1.4 静的プロパ...

MySQL 接続例外とエラー 10061 の解決方法

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

よく知られているブラウザのDOCTYPEモード選択メカニズム

ドキュメントの範囲この記事では、Firefox やその他の Gecko ベースのブラウザ、Safar...

Nginx ベースのアクセス制御と接続制限の実装

序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...