DB2で列の長さを減らす方法はありますか?
たとえば、列_col1
_がVARCHAR(80)
として定義されているテーブルtempがあるとします。 VARCHAR(60)
に減らしたいです。
DB2 9.7 for Linux/UNIX/Windowsでは、ALTER TABLEステートメントを使用して列の長さを減らすことができます列の値が新しい列のサイズを超えないと想定:
ALTER TABLE temp
ALTER COLUMN col1 SET DATA TYPE VARCHAR(60);
列の値が目的のサイズを超える場合は、最初にそのサイズを処理する必要があります。
以前のバージョンのDB2 for Linux/UNIX/Windowsでは、この方法を利用して列のサイズを縮小することはできませんでした。テーブルを削除または再作成するか、列を追加し、データをコピーし、古い列を削除するプロセスを実行する必要がありました。
イアンの答えと Clockwork-Museの発言 への追加として:
Ianが指摘したように、DB [LUW]の列の長さを減らすためにALTER
ステートメントを使用することは可能ですが、バージョン10以降のDB2 for z/OSには当てはまりません。
この表 によると、VARCHAR(n)
からVARCHAR(n+x)
へのデータ型の変更のみがサポートされています。 。
列の長さを短くすることはできません。この影響を達成するには、
長さを増やしたい場合は、ALTER
コマンドで可能です。
ALTER TABLE temp
ALTER COLUMN col1
SET DATA TYPE VARCHAR(60)