2009-05-15 2 views
0

У меня есть столбец длиной всего 6 символов в таблице, который ссылается на столбец с 20 символами с использованием ограничения внешнего ключа. Как это исправить?Изменение столбца в оракуле с ограничениями внешнего ключа

Примечание: проблема связана с ограничением таблицы Oracle Developer Edit Edit. Когда я выполнил конкретный столбец alter, он работал нормально.

ответ

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

Одним из возможных решений проблемы может быть то, что вы увеличиваете размер столбца из 6 символов до 20 символов.

Другим решением может быть то, что вы можете создать фиктивный столбец в таблице с размером столбца 20 символов. Задайте значение этого столбца, которое будет вычисляться функцией, и определите функцию, для которой фиктивный столбец в каждой строке присваивается значение первых шести символов из 20-символьного столбца. Затем используйте ограничение внешнего ключа.

 Смежные вопросы

  • Нет связанных вопросов^_^