При разбиении одной таблицы на несколько это обычный случай, когда внешний ключ ссылается на первичный ключ из другой строки?
, например
Источник таблицы данных
fk pk отношения между строками
id1 id2 name1 name2
10 1 a10 b1
9 8 a11 b2
8 3 a12 b3
3 9 a14 b4
1 10 a15 b5
Так что, когда я создаю первичный ключ таблицы в
create table pk_table (id1 integer primary key , name1 varchar2(20))
и внешнего ключа таблицы, как
create table fk_table (id2 integer, name2 varchar2(20) foreign key(id2) references pk_table(id1))
Так что, когда я разделить данные в соответствии с таблицами:
pk_table данные:
id1 name1
10 a10
9 a11
8 a12
3 a14
1 a15
и внешнего ключа данные
id2 name2
1 b1
8 b2
3 b3
9 b4
10 b5
Так вы видели эти случаи, когда мы не имеем FK, относящиеся к той же строке рк в исходной таблице?
EDITED: Обновлены данные таблицы, чтобы сделать ее более достоверной.
Просьба прочитать книгу Korth «Концепции системы баз данных». Также читайте все, что вы находите и понимаете в базах данных в ближайшие пару дней. Это не вопрос. Пожалуйста, уточните, с чем связана ваша проблема. – Rachcha
'1, b1' абсолютно ** должен ** существовать в' fk_table'. Вы не изменили записи из исходной таблицы правильно, если она не существует. Что означает '10, a10', если это не так? Кроме того, при создании таблицы 'fk_table' вы все равно должны идентифицировать' id2' как первичный ключ, так как это первичный ключ для этой таблицы. – mcalex
Если FK не ссылается на какой-либо ПК, то это не сам FK. – Santhosh