【问题标题】:Changing a column in oracle that has a foreign key constraint更改 oracle 中具有外键约束的列
【发布时间】:2009-05-16 08:57:37
【问题描述】:

我在一个表中有一个只有 6 个字符长的列,它使用外键约束引用了一个 20 个字符的列。我该如何解决这个问题?

注意:问题是由于 Oracle SQL Developer 编辑表的限制。当我执行特定的更改列时,它运行良好。

【问题讨论】:

    标签: oracle foreign-keys


    【解决方案1】:
    SQL> create table parent_tbl(col1 char(20) primary key);
    Table created.
    SQL> create table child_tbl(col1 char(6) primary key, constraint col1_fk foreign key (col1) references parent_tbl(col1));
    Table created.
    SQL> alter table child_tbl modify col1 char(20);
    Table altered.
    SQL>
    

    【讨论】:

      【解决方案2】:

      解决问题的一个可能方法是将 6 个字符的列的大小增加到 20 个字符。

      另一种解决方案是您可以在表中创建一个虚拟列,列大小为 20 个字符。将该列的值设置为由函数计算,并定义一个函数,以便为每行中的虚拟列分配 20 个字符列的前六个字符的值。然后使用外键约束。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多