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
また、シーケンス番号は通常キャッシュされます。これによりギャップが生じる可能性があり、移行中に問題が発生した可能性があります。
以下のクエリを使用して、DB2データベースから次のシーケンス値をフェッチします。
SELECT NEXT VALUE FOR "Sequence_name" FROM SYSIBM.SYSDUMMY1