外部キー制約を使用して20文字の列を参照する表の列の長さは6文字です。これをどうやって解決するのですか?外部キー制約を持つoracleの列を変更する
注:この問題は、Oracle SQL Developerの編集表の制限によるものです。特定の変更列を実行すると、正常に機能しました。
外部キー制約を使用して20文字の列を参照する表の列の長さは6文字です。これをどうやって解決するのですか?外部キー制約を持つoracleの列を変更する
注:この問題は、Oracle SQL Developerの編集表の制限によるものです。特定の変更列を実行すると、正常に機能しました。
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つは、6文字から20文字の列のサイズを大きくすることです。
もう1つの解決策は、20文字の列サイズで表にダミー列を作成できることです。その列の値を関数で計算するように設定し、各行のダミー列に20文字列の最初の6文字の値が割り当てられるような関数を定義します。次に、外部キー制約を使用します。