У меня есть скопированная таблица:Oracle SQL ОР-02291 родительский ключ не найден
CREATE TABLE d_clients_copy As SELECT * FROM d_clients;
только структура данных и значения копируются, ограничение нет.
Так я добавляю первичный ключ к вновь созданной базе данных:
ALTER TABLE d_clients_copy
add CONSTRAINT client_number_pk
PRIMARY KEY (client_number);
Теперь у меня есть столбец первичного ключа во вновь созданную таблицу.
У меня есть таблица с событиями, и я пытаюсь ссылаться на client_number из таблицы c_clients_copy.
ALTER TABLE d_events_copy
add CONSTRAINT client_number_fk
FOREIGN KEY (client_number)
REFERENCES d_clients_copy (client_number);
И оракул дает следующее сообщение об ошибке:
ORA-02298: cannot validate ... - parent keys not found.
Какой является родителем? Я так растерялся.
Примечание: каждая таблица содержит данные.
Параметр 'client_number' столбец' d_events_copy' таблица содержит те значения, отсутствующие в 'client_number' колонке' d_clients_copy' Таблица. Вот почему эта ошибка. – Noel
@Noel Таблица 'd_events_copy' была создана с использованием' SELECT * FROM d_clients' без предложения where, поэтому я думаю, что есть те же данные. – Parado
Я не знаю, какие данные есть в таблицах. Но ошибка, безусловно, связана с дочерней таблицей, имеющей данные, отсутствующие в родительской таблице. Пусть OP проверяет данные. 'select client_number из d_events_copy, где client_number не входит (выберите client_number из d_clients_copy)' – Noel