【问题标题】:Modifying Primary Index of a table in Teradata在 Teradata 中修改表的主索引
【发布时间】:2016-07-07 18:24:21
【问题描述】:

我是 Teradata 的新手。 我有一个包含大约 45k 条记录的表,其中包含特定的主索引。 我想更改此表的主索引。 有人可以帮忙吗?

下面是我当前的主索引。

PRIMARY INDEX IDX_NON_RTL_SALES_WIDE_01 ( col1 ,Col2 ,Col3 );

我想删除 col3 并添加一些其他列。

提前致谢

【问题讨论】:

    标签: sql database indexing teradata alter


    【解决方案1】:

    除非表为空,否则您无法更改 teradata 中的 PI。

    您需要将数据复制到另一个表中,无论是易失的还是永久的。

    然后你可以改变你的索引:

    alter table <TableName> modify primary index Index_Name(col1, col2, ...);
    

    【讨论】:

    • 嗨 Andrew,如果表包含一个标识列作为主索引怎么办?我们不能真正重新创建表,因为它会为 Identity 列生成与当前值不匹配的新值。知道如何更改带有标识列的表上的 UPI/PI 吗?谢谢
    【解决方案2】:

    一般而言,您不应更改 Teradata 上的 PI。我建议创建一个带有新 PI 的新表并删除旧表。

    CREATE TABLE BLA_new
      as BLA_old
      with data
    PRIMARY INDEX ( <<new PI -columns>>);
    DROP TABLE BLA_old;
    

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 2021-10-09
      相关资源
      最近更新 更多