注意:所有这些信息都可以在可从此处下载的 Teradata 手册中找到。从那里您可以在屏幕的右上角选择您感兴趣的版本。
将值列表压缩添加到现有列
根据您可以容忍表被排他锁定的表大小和持续时间,您可以使用添加值列表压缩ALTER TABLE
。如果压缩值列表的表头中有足够的存在位,则操作可以相当快,否则它将相当密集:
ALTER TABLE MyDB.MyTable ADD SEGMENT CHAR(10)
COMPRESS ('AM', 'CAM', 'KAM', 'KO', 'PSHC', 'RES', 'SBS');
否则,您可以创建一个新表并在其上定义值列表压缩,将原始生产表中的统计信息复制到新表中,将数据插入新表中,然后重命名表以将新表作为生产表引入桌子。
将列添加到现有表
如果表头中有未使用的存在位,则使用 ALTER TABLE 添加此列可能是一个相当快速的操作。如果没有足够的存在位来捕获压缩值列表,ALTER TABLE
则不推荐使用以下方法:
ALTER TABLE MyDB.MyTable ADD pot_klasse CHAR(1)
CHARACTER SET LATIN NOT CASESPECIFIC COMPRESS ('B','U');
更改主索引
这取决于。
在某些情况下,您可以修改表的 PI,而无需使用ALTER TABLE
. (例如,非唯一到唯一) 但是,您通常会发现自己必须创建一个新表并将原始表中的数据插入到新表中。(例如添加一列,更改主索引中列的数据类型等)