1. ホーム
  2. Database

PostgreSQLの配列

2022-02-22 21:40:36
<パス

PostgreSQLはリレーショナルデータベースであり、OracleやMySQLと同様に広く利用されている。私は普段の業務で主にPostgreSQLを使用しているので、その関連知識をまとめてマスターする必要があり、まずはその順序をまとめます。
I. シーケンス シーケンス
シーケンスは、自動的に増加する数列で、通常、行やテーブルの一意な識別子として使用され、代理の主キーとして使用されます。
1. シーケンスの作成

例 最小値1、最大値9223372036854775807、循環ソート 1から始まり1ずつ増加するシーケンス、および1つのキャッシュを持つseq_commodityを作成します。

SQL文は以下の通りである。

 CREATE SEQUENCE seq_commodity
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1 
  CYCLE; // Loop, start from the beginning after reaching the maximum value

2. Sequenceで値を探す

SELECT nextval('seq_commodity').



ここでnextvalは次の値を意味する

3. シーケンスの変更
alterシーケンスで変更する場合、start以外の全てのパラメータを変更することができます。
alterシーケンス(SQL文)の例

ALTER SEQUENCE seq_commodity 
  INCREMENT 10 
  MAXVALUE 10000 
  CYCLE 
  NOCACHE ; 

もちろん、開始値を変更したい場合は、ドロップシーケンスで削除してから、再作成すればよい。

4. ドロップシークエンスの削除
DROP SEQUENCE seq_commodity;

5. 配列の割り当て戦略
call select nextval(seq_ commodity); 次のSequence番号を返した後、このSequence番号がユーザによって使用されているかどうかに関わらず、システムはユーザにSequence番号を優先的に割り当て、その直後にシステムのサブSequenceに設定したステップ(増分1)を加えたものを割り当てます。
select currval(seq_ commodity); の呼び出しは、現在のシーケンス番号を返す。この番号は、使用されない限り変化しない。また、現在のリクエストが常に使用されている場合、シーケンス番号はすでに現在のリクエストに割り当てられているので、他のリクエストに割り当てられることはない。