web-dev-qa-db-ja.com

Db2:シーケンスの現在の値を更新する方法

Db2データベースではシーケンスを使用します。最近、AIXサーバーからLinuxサーバーにデータを移行しました。その間、そのシーケンスの最新の番号はLinuxシステムに移動されませんでした。結果として、重複する値が表示されるようになりました。

シーケンスの使用方法は次のとおりです。

SELECT NEXTVAL FOR SEQ_YFS_ORDER_NO FROM SYSIBM.SYSDUMMY1

Linuxでのシーケンスの現在の値は100092142です。AIXシステムにある現在の値、つまり(100110960)に更新するにはどうすればよいですか?

ALTER SEQUENCE を使用してシーケンスを変更できます。 ALTER SEQUENCEが提供するオプションは、特定の値で再起動することです 。このようなものを試してください:

ALTER SEQUENCE SEQ_YFS_ORDER_NO RESTART WITH 100110960

また、シーケンス番号は通常キャッシュされます。これによりギャップが生じる可能性があり、移行中に問題が発生した可能性があります。

10
data_henrik

以下のクエリを使用して、DB2データベースから次のシーケンス値をフェッチします。

  SELECT NEXT VALUE FOR "Sequence_name"  FROM SYSIBM.SYSDUMMY1
1
Abhishek Jha