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

时间:2009-05-15 20:53:22

标签: oracle foreign-keys

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

注意:问题是由于Oracle SQL Developer Edit表的限制。当我执行特定的更改列时,它工作正常。

2 个答案:

答案 0 :(得分:6)

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>

答案 1 :(得分:1)

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

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