Probleme insertion, cause : clé etrangère !

Probleme insertion, cause : clé etrangère ! - SQL/NoSQL - Programmation

Marsh Posté le 10-12-2006 à 22:45:53    

Bonjour,
 
Voici mon problème j'ai deux tables qui dépendent l'une de l'autre par des clés étrangères dont le schéma est le suivant
 

Code :
  1. create table adresse (
  2.     num_rue                 number(4),
  3.     nom_rue                 varchar2(30),
  4.     cp                      number(5),
  5.     nom_ville               varchar2(30),
  6.     num_caserne_proche      number(6)       not null,
  7.     km                      number(4),
  8.     primary key(num_rue, nom_rue, cp , nom_ville)
  9. )
  10. create table caserne (
  11.     num                     number(6)       primary key,
  12.     capacite_max_camions    number(4),
  13.     capacite_max_humaine    number(5),
  14.     num_rue                 number(4)       not null,
  15.     nom_rue                 varchar2(50)    not null,
  16.     cp                      number(5)       not null,
  17.     nom_ville               varchar2(30)    not null
  18. )
  19. alter table adresse
  20.     add constraint fk_adresse_caserne foreign key(num_caserne_proche) references caserne(num)
  21. alter table caserne
  22.     add constraint fk_caserne_adresse foreign key(num_rue, nom_rue, cp, nom_ville) references adresse(num_rue, nom_rue, cp, nom_ville)


 
De par cette situation je ne peux pas insérer de tuple dans l'une de ces deux tables car j'ai une erreur de violation m'indiquant que la clé parente est introuvable.
Il y a soit disant une solution autre que de faire les insert avant les alter mais je ne vois pas.
Merci pour votre aide, ++
 
Nico

Reply

Marsh Posté le 10-12-2006 à 22:45:53   

Reply

Marsh Posté le 10-12-2006 à 23:15:17    

Si les contraintes sont trop contraignantes, il faut les enlever.

Reply

Marsh Posté le 11-12-2006 à 07:37:44    

Le meilleur serai que tu désactive les clés étrangères, ensuite tu insères et puis tu réactives
 
J’avais déjà eu le cas

Reply

Marsh Posté le 11-12-2006 à 12:46:26    

mais tu ne pourras plus insérer d'adresse de caserne après.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed