2016-09-29 1 views
0

Netezzaバージョン7.2では、NOT NULLをNULLに変更したり、新しいテーブルを作成せずに元に戻したりすることはできません。非常に大きなテーブルの列制約を変更するための非常に残酷な方法と思われます。Netezzaは列の制約を変更します

答えて

0

は、あなたがこのような何かを行うことができますので、あなたは、列を追加し、名前を変更することができますよう技術的には、それは、唯一の方法ではありません。

TESTDB.ADMIN(ADMIN)=> create table test1 (col1 integer not null); 
CREATE TABLE 
TESTDB.ADMIN(ADMIN)=> alter table test1 add column (col2 integer); 
ALTER TABLE 
TESTDB.ADMIN(ADMIN)=> update test1 set col2=col1; 
UPDATE 0 
TESTDB.ADMIN(ADMIN)=> alter table test1 drop column col1 cascade; 
ALTER TABLE 
TESTDB.ADMIN(ADMIN)=> alter table test1 rename column col2 to col1; 
ALTER TABLE 
TESTDB.ADMIN(ADMIN)=> groom table test1 versions; 
NOTICE: Groom will not purge records deleted by transactions that started after 2016-09-29 12:38:13. 
NOTICE: If this process is interrupted please either repeat GROOM VERSIONS or issue 'GENERATE STATISTICS ON "TEST1"' 
NOTICE: Groom processed 0 pages; purged 0 records; scan size unchanged; table size unchanged. 
GROOM VERSIONS 

しかし、それは私の観点から任意の少ない「残酷」ではありません/ O.日々のNetezzaの生活には、しばしば大きなテーブルのCTASが必要です。そしてそれを使って、配布列を変更していた場合と同じように、これを単純に解決できます。

関連する問題