[SQL] Suppression en "cascade"
Fermé
patrice86
Messages postés
1380
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
17 décembre 2024
-
Modifié par patrice86 le 16/11/2011 à 18:34
patrice86 Messages postés 1380 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 17 décembre 2024 - 16 nov. 2011 à 19:51
patrice86 Messages postés 1380 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 17 décembre 2024 - 16 nov. 2011 à 19:51
A voir également:
- Delete cascade oracle
- Liste déroulante en cascade - Guide
- Just delete me - Guide
- Hiberfil.sys delete - Guide
- Delete boot option - Forum BIOS
- Identificateur non valide oracle ✓ - Forum Bases de données
2 réponses
jee pee
Messages postés
40647
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
9 janvier 2025
9 482
16 nov. 2011 à 18:44
16 nov. 2011 à 18:44
Salut,
Il faudrait que tu précises le sgbd que tu utilises car les techniques varient.
Pour Oracle cela ce situe au niveau du create table, voir : https://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php
cdlt
Il faudrait que tu précises le sgbd que tu utilises car les techniques varient.
Pour Oracle cela ce situe au niveau du create table, voir : https://www.techonthenet.com/oracle/foreign_keys/foreign_delete.php
cdlt
patrice86
Messages postés
1380
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
17 décembre 2024
125
Modifié par patrice86 le 16/11/2011 à 19:04
Modifié par patrice86 le 16/11/2011 à 19:04
J'utilise une bdd sous postgre
J'ai essayé en faisant
CREATE TABLE commandes
(
num_com serial NOT NULL,
total_com integer,
numpers_com integer NOT NULL,
CONSTRAINT pk_commandes PRIMARY KEY (num_com ),
CONSTRAINT fk_commandes FOREIGN KEY (numpers_com)
REFERENCES personnes (num_pers) ON DELETE CASCADE
)
mais lorsque je veux ajouter une commande en sql:
insert into commandes values(default, 3000,6);
j'ai un jolie message d'erreur:
ERREUR: une instruction insert ou update sur la table « commandes » viole la contrainte de clé
étrangère « fkpers_com »
DETAIL: La clé (numpers_com)=(6) n'est pas présente dans la table « personnes ».
J'ai essayé en faisant
CREATE TABLE commandes
(
num_com serial NOT NULL,
total_com integer,
numpers_com integer NOT NULL,
CONSTRAINT pk_commandes PRIMARY KEY (num_com ),
CONSTRAINT fk_commandes FOREIGN KEY (numpers_com)
REFERENCES personnes (num_pers) ON DELETE CASCADE
)
mais lorsque je veux ajouter une commande en sql:
insert into commandes values(default, 3000,6);
j'ai un jolie message d'erreur:
ERREUR: une instruction insert ou update sur la table « commandes » viole la contrainte de clé
étrangère « fkpers_com »
DETAIL: La clé (numpers_com)=(6) n'est pas présente dans la table « personnes ».
jee pee
Messages postés
40647
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
9 janvier 2025
9 482
16 nov. 2011 à 19:46
16 nov. 2011 à 19:46
Il est évident que l'enregistrement de la table personne doit exister avant de pouvoir créer une commande;
patrice86
Messages postés
1380
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
17 décembre 2024
125
16 nov. 2011 à 19:51
16 nov. 2011 à 19:51
Il existe bien.
L'enregistrement avec pour num_pers = 6 existe.
je ne comprends pas
L'enregistrement avec pour num_pers = 6 existe.
je ne comprends pas