bonjour a tous,
j'ai un probleme lorsque je supprime une table qui a une contrainte avec une autre.
En effet, je ne peux pas la supprimer que si je supprime d'abord la table qui contient la containte et donc je perd ainsi tous les enregistrements de cette table.
J'ai trouvé qu'on pouvait utiliser un "on delete cascade" lors de la definition de la table qui contient la contrainte.
Le probleme, c'est que je ne sais pas comment l'utiliser.
voici ce que je fait:
1.création de la table patient:
2.création de la table mesure (contenant la foreign key):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 create table patient (ref INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1,INCREMENT BY 1) primary key, nomp varchar(20) not null, prenomp varchar(20), adresse varchar(50), Cp varchar(5), ville varchar(20), telephone varchar(10), email varchar(30), suivi_par varchar(20), type_diabete varchar(13), diagnostic varchar(80), UNIQUE (ref, nomp));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 create table mesure(idmesure int primary key, dat varchar(10) , heure varchar(10), glycemie double, axtrapide double, mixtard30 double, commentaire varchar(50), idpatient integer, Foreign Key (idpatient) REFERENCES patient (ref) on delete cascade);
3. suppression de la table patient:
4.Et voici l'erreur que je recois:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 drop table patient;
peut-etre ai-je du mal définir mon delete cascade ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Error: L'opération 'DROP CONSTRAINT' ne peut pas être effectuée sur l'objet 'SQL080522111551360' car CONSTRAINT 'SQL080522121407991' dépend de cet objet. SQLState: X0Y25 ErrorCode: -1
Si quelqu'un peut m'aider ?
merci
Partager