2009-05-15 25 views
0

外部キー制約を使用して20文字の列を参照する表の列の長さは6文字です。これをどうやって解決するのですか?外部キー制約を持つoracleの列を変更する

注:この問題は、Oracle SQL Developerの編集表の制限によるものです。特定の変更列を実行すると、正常に機能しました。

答えて

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文字の列のサイズを大きくすることです。

もう1つの解決策は、20文字の列サイズで表にダミー列を作成できることです。その列の値を関数で計算するように設定し、各行のダミー列に20文字列の最初の6文字の値が割り当てられるような関数を定義します。次に、外部キー制約を使用します。

関連する問題