gpt4 book ai didi

oracle - 在 oracle 中缩小一列

转载 作者:行者123 更新时间:2023-12-05 00:02:37 25 4
gpt4 key购买 nike

假设我有一个具有以下定义的表

create table dummy (col1 number(9) not null)

这个 dummy.col1 中的所有值都是 7 位长。现在我想使用 alter 命令将此列的长度从 9 减少到 7。 Oracle 给我的错误是 要修改的列必须为空以降低精度或小数位数 .说得通。

我想问一下有没有办法减少列大小?
  • 我无法删除列中的值。
  • 我无法将此列中的值复制到另一列,因为它有数万亿的数据。
  • 最佳答案

    列大小与数据的物理存储方式无关(它们是可变长度的)

    例如如果存储在数字(38)中,数字(2)中的“23”将占用完全相同的空间

    它纯粹是对可以存储在列中的最大数量的约束,因此您可以在列上添加约束:

    ALTER TABLE dummy ADD 
    CONSTRAINT c1
    CHECK (col1 < 9999999)
    ENABLE
    VALIDATE;

    如果你想让它走得更快一点改变 VALIDATENOVALIDATE显然这不会检查现有数据的有效性。

    关于oracle - 在 oracle 中缩小一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741468/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com