すべてのプロダクト
Search
ドキュメントセンター

PolarDB:制限事項

最終更新日:Jun 05, 2024

このトピックでは、シーケンスの制限と問題のトラブルシューティング方法について説明します。

新しいシーケンス

  • 新しいシーケンスは、カーネルバージョンがV5.4.14以降のPolarDB-XインスタンスのAUTOデータベースでのみ使用できます。
  • 新しいシーケンスのINCREMENT BY、MAXVALUE、およびCYCLEまたはNOCYCLEパラメーターを指定できるのは、PolarDB-X 5.4.17以降のインスタンスのみです。
  • 新しいシーケンスを含むPolarDB-Xインスタンスのカーネルバージョンを、新しいシーケンスをサポートしないバージョンにダウングレードする前に、すべての新しいシーケンスをグループシーケンスに変換する必要があります。 次の手順を実行して、すべての新しいシーケンスをグループシーケンスに変換します。
    • インスタンスに新しいシーケンスが存在するかどうかを確認するには、INFORMATION_SCHEMA.SEQUENCESビューを参照します。
    • インスタンスに新しいシーケンスが存在する場合は、CONVERT ALL sequences FROM new TO GROUPステートメントを実行して、インスタンス内のすべての新しいシーケンスをグループシーケンスに変換します。 詳細については、「CONVERTシーケンス」をご参照ください。
  • 新しいシーケンスでは、グローバルメタサービス (GMS) を使用して自動増分列の値を割り当てます。 パフォーマンスを確保するために、GMSはいくつかの値をキャッシュする必要があります。 更新、フェールオーバー、構成変更、移行などの操作をGMSで実行する場合、操作の実行前にキャッシュされていた値は破棄され、シーケンス内でスキップされます。

グループシーケンス

  • デフォルトでは、カーネルバージョンがV5.4.13以前のPolarDB-Xインスタンスのデータベースと、カーネルバージョンがV5.4.14以降のPolarDB-XインスタンスのDRDSモードのデータベースでグループシーケンスが使用されます。
  • グループシーケンスの開始値は100001です。 これは、グループ系列の最小値が100001であることを示す。
  • 複数のユニットを含むグループシーケンスは、別のタイプのシーケンスに変換することはできず、他のタイプのシーケンスは、複数のユニットを含むグループシーケンスに変換することはできない。 複数の単位を含むグループシーケンスのSTART WITHパラメーターの値のみを変更できます。 シーケンスを定義するために使用される他のパラメーターの値は変更できません。
  • 同じグループシーケンスに属するユニットシーケンスの定義では、unit COUNTパラメータの値は同じでなければならず、INDEXパラメータの値は異なる必要があります。 これにより、シーケンス値が複数のインスタンスまたはデータベースでグローバルに一意になります。
  • 次の操作を実行しないことをお勧めします。テーブルの作成時に自動的にテーブルに関連付けられるAUTO_SEQ_ というプレフィックスが付いたグループシーケンスを使用して、NEXTVALを取得し、insertを使用して取得した値を明示的な値としてテーブルに挿入します。 上記の操作を実行すると、グループシーケンスが頻繁にキャッシュを更新し、値がすぐに増加する可能性があります。

タイムシーケンス

タイムシーケンスを使用してテーブルの自動インクリメント列の値を生成する場合は、列のデータ型がBIGINTである必要があります。