代码之家  ›  专栏  ›  技术社区  ›  Joshua

更改oracle中具有外键约束的列

  •  0
  • Joshua  · 技术社区  · 17 年前

    2 回复  |  直到 17 年前
        1
  •  6
  •   Mark Roddy    17 年前
    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
  •  1
  •   Stack Programmer    17 年前

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

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