tencent cloud

Data Transfer Service

構造互換性チェック

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-16 18:04:38
AI翻訳・品質チェック済み

チェック詳細

ターゲットデータベースのバージョンが12以上であり、かつ移行対象のテーブルにabstime、reltime、tintervalの3つのデータ型が含まれている場合、検証タスクはエラーを報告します。
abstime、reltime、tintervalデータ型は、古い時刻および日付型であり、新しいPostgreSQLバージョンでは廃止されているため、以下の型で置き換えることをお勧めします:
abstime:timestampまたはtimestamp with time zoneタイプで置き換えることができます。これらのタイプは、より広範な日付と時刻の表現機能を提供します。
reltime:intervalタイプで置き換えることができます。intervalタイプは時間間隔を表すために使用され、年、月、日、時間、分、秒などの単位を含めることができます。
tinterval:tsrangeまたはtstzrangeタイプで置き換えることができます。これらのタイプは時間範囲を表すために使用され、開始時刻と終了時刻を含めることができます。

修復方法

abstime、reltime、tintervalの3つのデータ型の変更方法は類似しています。いずれも、まず新しい列を作成し、旧バージョンのデータ形式を新バージョンのデータ形式に変換して新しい列に格納します。新しい列のデータが正しいことを確認した後、古い列を削除し、最後に必要に応じて、新しい列を古い列の名前に変更します。
以下では、abstimeをtimestampに変更する例を紹介します。
1. 検証タスクでエラーが報告されたテーブルに、timestamp型の列を追加します。
ALTER TABLE your_table ADD COLUMN new_column TIMESTAMP;
2. abstime列のデータをtimestamp型に変換し、結果を新しい列に格納します。
UPDATE your_table SET new_column = your_abstime_column::TIMESTAMP;
3. 新しい列のデータが正しいかどうかを検証します。
SELECT * FROM your_table;
4. 新しい列のデータが正しいことを確認したら、古いabstime列を削除できます。
ALTER TABLE your_table DROP COLUMN your_abstime_column;
5. 必要に応じて、新しい列を古い列の名前に変更できます。
ALTER TABLE your_table RENAME COLUMN new_column TO your_abstime_column;


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック