Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Teradata中修改表_Teradata - Fatal编程技术网

在Teradata中修改表

在Teradata中修改表,teradata,Teradata,嗨,Teradata的同事们 我必须在生产中进行一些修改: 1) 修改现有合谋 2) 添加一些新的collumns 3) 删除并重新创建主索引 有人能在1)情况下帮我吗-添加压缩部分修改柱段: 段字符(10)字符集拉丁非大小写压缩('AM','CAM','KAM','KO','PSHC','RES','SBS')) 如何添加此列: pot_klasse CHAR(1)字符集拉丁非大小写压缩('B','U')) 如何制作新的索引?(我必须先放下它,然后再做一个新的吗?注意:所有这些信息都可以在Te

嗨,Teradata的同事们

我必须在生产中进行一些修改: 1) 修改现有合谋 2) 添加一些新的collumns 3) 删除并重新创建主索引

有人能在1)情况下帮我吗-添加压缩部分修改柱段:

段字符(10)字符集拉丁非大小写压缩('AM','CAM','KAM','KO','PSHC','RES','SBS'))

如何添加此列: pot_klasse CHAR(1)字符集拉丁非大小写压缩('B','U'))

如何制作新的索引?(我必须先放下它,然后再做一个新的吗?

注意:所有这些信息都可以在Teradata手册中找到,可从下载。从那里,您可以在屏幕右上角选择感兴趣的版本

向现有列添加值列表压缩

根据您可以容忍表被独占锁定的表大小和持续时间,您可以使用
ALTER table
添加值列表压缩。如果表头中有足够的存在位用于压缩值列表,则操作可以相当快,否则将相当密集:

ALTER TABLE MyDB.MyTable ADD SEGMENT CHAR(10) 
      COMPRESS ('AM', 'CAM', 'KAM', 'KO', 'PSHC', 'RES', 'SBS');
否则,您可以创建一个定义了值列表压缩的新表,将统计信息从原始生产表复制到新表,将数据插入新表,然后重命名这些表以将新表作为生产表引入

将列添加到现有表中

如果表头中有未使用的存在位,那么使用ALTERTABLE添加此列可以是一个相当快速的操作。如果没有足够的存在位用于捕获压缩值列表
ALTER TABLE
将不是推荐的方法:

ALTER TABLE MyDB.MyTable ADD pot_klasse CHAR(1) 
      CHARACTER SET LATIN NOT CASESPECIFIC COMPRESS ('B','U');
更改主要索引

视情况而定


在某些情况下,您可以修改表的PI,而无需使用
altertable
创建新表。(例如,非唯一到唯一)但是,您经常会发现自己必须创建一个新表,并将数据从原始表插入到新表中。(例如,添加列、更改主索引中列的数据类型等)

Thx Rob!这就是我要找的。Rob,你能帮我解决这个问题吗(我没有在文档中找到它,这真的有点让人不知所措):我的表有这个列-禁止十进制(9,0),现在我想把它改为-禁止十进制(15,0)压缩0。-我怎么做?什么是压缩约束0。还是别的什么意思?谢谢,D。我希望这是可能的,我不必创建一个新表,然后从旧表复制数据。该表非常大-当我从该表中计算(*)时,我得到以下错误:2616数字溢出发生在计算过程中。我看到您关于CONUT(*)的问题在单独的SO线程中得到解决。