2009-05-15 3 views

Répondre

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

Une des solutions possibles à votre problème pourrait être d'augmenter la taille de la colonne de 6 caractères à 20 caractères.

Une autre solution pourrait être que vous pouvez créer une colonne fictive dans la table avec la taille de la colonne de 20 caractères. Définissez la valeur de cette colonne à calculer par une fonction et définissez une fonction de sorte que la colonne fictive de chaque ligne se voit attribuer une valeur de six premiers caractères de colonne de 20 caractères. Utilisez ensuite la contrainte de clé étrangère.