ORA-02291: ограничение целостности (SYSTEM.FK_DEMINSCRIP2) нарушено - родительский ключ - PullRequest
0 голосов
/ 21 марта 2020

вот моя база данных: и у меня проблема с вставкой в ​​последнюю таблицу

create table ville (
idville varchar2(20), 
nom varchar2(20), 
pays varchar2(20), 
constraint pk_ville primary key(idville)
);

insert into ville values('a1','casa','maroc');
insert into ville values('a2','rabat','maroc');
insert into ville values('a3','oujda','maroc');
insert into ville values('a4','tanger','maroc');
insert into ville values('a5','fes','maroc');
insert into ville values('b1' , 'marackech','maroc');


create table participant (
idp varchar2(20), 
nomp varchar2(20), 
prenom varchar2(20),
mail varchar2(20),
pwd varchar2(20),
idville varchar2(20),
constraint pk_participant primary key(idp),
constraint fkville  foreign key(idville) references ville (idville)on delete cascade 
);


insert into participant values( 'a10 ', 'ha1' , 'him1' , 'ha1@mail.com' , '123' , 'a1');
insert into participant values( 'a20 ', 'ha2' , 'him2' , 'ha2@mail.com' , '456' , 'a2');
insert into participant values( 'a30 ', 'ha3' , 'him3' , 'ha3@mail.com' , '789' , 'a3');
insert into participant values( 'b10 ', 'ha3' , 'him3' , 'ha3@mail.com' , '789' , 'b1');



create table association (
idass varchar2(20), 
nomass varchar2(20), 
raisonsocial varchar2(20),
adressen varchar2(20),
telephone varchar2(20),
idville varchar2(20),
constraint pk_association primary key(idass),
constraint fk_association foreign key(idville) references  ville (idville)on delete cascade 
);

insert into  association values( 'a100 ', 'fox' , 'vide' , 'street 123' , '07154544' , 'a1');
insert into association values( 'a200 ', 'for' , 'vide' , 'street 456' , '07154544' , 'a2');
insert into association values( 'a300 ', 'fot' , 'vide' , 'street 789' , '07154544' , 'a3');
insert into association values( 'a400 ', 'fot' , 'vide' , 'street 789' , '07154544' , 'a4');
insert into association values( 'b100 ', 'fot' , 'vide' , 'street 789' , '07154544' , 'b1');


create table stage(
idstage varchar2(20), 
date_debut  Date, 
date_fin  Date, 
idass varchar2(20),
constraint pk_stage primary key(idstage),
constraint fk_stage foreign key(idass) references  association(idass)on delete cascade 
);

insert into  stage values( 'a1000 ' , to_date('10/01/2000 ' , 'DD/MM/YYYY') , sysdate  , 'a100 ');
insert into stage values( 'a2000 ' , to_date('20/02/2000 ' , 'DD/MM/YYYY') , sysdate , 'a200 ');
insert into stage values( 'a3000 ' , to_date('30/03/2000 ' , 'DD/MM/YYYY') , sysdate  , 'a300 ');
insert into stage values( 'b1000 ' , to_date('30/03/2000 ' , 'DD/MM/YYYY') , sysdate , 'b100 ');


create table demandeinscription (
idins varchar2(20), 
date_demande  Date, 
idp varchar2(20),
idstage varchar2(20),
etat varchar2(20),
constraint pk_demande_inscription primary key(idins),
constraint fk_deminscrip1 foreign key(idp) references  participant (idp)on delete cascade ,
constraint fk_deminscrip2 foreign key(idstage) references  stage (idstage)on delete cascade );

это данные, которые мне нужны для вставки

insert into demandeinscription values( 'c1000 ', sysdate , 'a10 ' , 'a1000' , 'refuse' );


ограничения целостности (SYSTEM. FK_DEMINSCRIP2) нарушен - родительский ключ

, когда я пытаюсь вставить строку в эту таблицу demandeinscription, она показывает эту ошибку, даже если существуют значения этого idp и idstage. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

В столбце idstage значение 'a1000' , которое вы вставляете в таблицу stage, кажется, есть пробел, в то время как вставка в demandeinscription имеет значение ' a1000' без пробела для idstage столбец

дБ <> скрипка

0 голосов
/ 21 марта 2020

В следующей вставке в id вставлен пробел

insert into  stage values( 'a1000 ' , to_date('10/01/2000 ' , 'DD/MM/YYYY') , sysdate  , 'a100 '); 
-- remove space from 'a100 ' and use 'a100'

Вы ссылаетесь без пробела:

insert into demandeinscription values( 'c1000 ', sysdate , 'a10 ' , 'a1000' , 'refuse' );

В этом проблема. Оба значения должны быть точно такими же. IE-- удалите пробел из 'a100' и используйте 'a100'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...