Oracle manipulation table
Sharky1x
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
masterx_goldman Messages postés 75 Date d'inscription Statut Membre Dernière intervention -
masterx_goldman Messages postés 75 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila j ai cree une table detaillivraison
je veux inserer des valeur mais je recoi une erreur
SQL> CREATE TABLE DetailLivraison
2 (noLivraison INTEGER NOT NULL,
3 noCommande INTEGER NOT NULL,
4 noArticle INTEGER NOT NULL,
5 quantitéLivrée INTEGER NOT NULL,
6 PRIMARY KEY (noLivraison, noCommande),
7 FOREIGN KEY (noLivraison) REFERENCES Livraison,
8 FOREIGN KEY (noCommande, noArticle) REFERENCES LigneCommande);
Table créée.
SQL>
SQL> insert into detaillivraison values (1,1,1,1);
insert into detaillivraison values (1,1,1,1)
*
ERREUR à la ligne 1 :
ORA-02291: violation de contrainte d'intégrité (SCOTT.SYS_C005456) - clé parent
introuvable
voila toute les table crees
CREATE TABLE Client
(noClient INTEGER NOT NULL,
nomClient VARCHAR(20) NOT NULL,
noTéléphone VARCHAR(15) NOT NULL,
PRIMARY KEY (noClient)
)
CREATE TABLE Article
(noArticle INTEGER NOT NULL,
description VARCHAR(20) NOT NULL,
prixUnitaire DECIMAL(10,2) NOT NULL,
quantitéEnStock INTEGER NOT NULL,
PRIMARY KEY (noArticle))
CREATE TABLE Commande
(noCommande INTEGER NOT NULL,
dateCommande DATE NOT NULL,
noClient INTEGER NOT NULL,
PRIMARY KEY (noCommande),
FOREIGN KEY (noClient) REFERENCES Client
)
CREATE TABLE LigneCommande
(noCommande INTEGER NOT NULL,
noArticle INTEGER NOT NULL,
quantité INTEGER NOT NULL,
PRIMARY KEY (noCommande, noArticle),
FOREIGN KEY (noCommande) REFERENCES Commande,
FOREIGN KEY (noArticle) REFERENCES Article
)
CREATE TABLE Livraison
(noLivraison INTEGER NOT NULL,
dateLivraison DATE NOT NULL,
PRIMARY KEY (noLivraison)
)
CREATE TABLE DétailLivraison
(noLivraison INTEGER NOT NULL,
noCommande INTEGER NOT NULL,
noArticle INTEGER NOT NULL,
quantitéLivrée INTEGER NOT NULL,
PRIMARY KEY (noLivraison, noCommande, noArticle),
FOREIGN KEY (noLivraison) REFERENCES Livraison,
FOREIGN KEY (noCommande, noArticle) REFERENCES LigneCommande
merci
voila j ai cree une table detaillivraison
je veux inserer des valeur mais je recoi une erreur
SQL> CREATE TABLE DetailLivraison
2 (noLivraison INTEGER NOT NULL,
3 noCommande INTEGER NOT NULL,
4 noArticle INTEGER NOT NULL,
5 quantitéLivrée INTEGER NOT NULL,
6 PRIMARY KEY (noLivraison, noCommande),
7 FOREIGN KEY (noLivraison) REFERENCES Livraison,
8 FOREIGN KEY (noCommande, noArticle) REFERENCES LigneCommande);
Table créée.
SQL>
SQL> insert into detaillivraison values (1,1,1,1);
insert into detaillivraison values (1,1,1,1)
*
ERREUR à la ligne 1 :
ORA-02291: violation de contrainte d'intégrité (SCOTT.SYS_C005456) - clé parent
introuvable
voila toute les table crees
CREATE TABLE Client
(noClient INTEGER NOT NULL,
nomClient VARCHAR(20) NOT NULL,
noTéléphone VARCHAR(15) NOT NULL,
PRIMARY KEY (noClient)
)
CREATE TABLE Article
(noArticle INTEGER NOT NULL,
description VARCHAR(20) NOT NULL,
prixUnitaire DECIMAL(10,2) NOT NULL,
quantitéEnStock INTEGER NOT NULL,
PRIMARY KEY (noArticle))
CREATE TABLE Commande
(noCommande INTEGER NOT NULL,
dateCommande DATE NOT NULL,
noClient INTEGER NOT NULL,
PRIMARY KEY (noCommande),
FOREIGN KEY (noClient) REFERENCES Client
)
CREATE TABLE LigneCommande
(noCommande INTEGER NOT NULL,
noArticle INTEGER NOT NULL,
quantité INTEGER NOT NULL,
PRIMARY KEY (noCommande, noArticle),
FOREIGN KEY (noCommande) REFERENCES Commande,
FOREIGN KEY (noArticle) REFERENCES Article
)
CREATE TABLE Livraison
(noLivraison INTEGER NOT NULL,
dateLivraison DATE NOT NULL,
PRIMARY KEY (noLivraison)
)
CREATE TABLE DétailLivraison
(noLivraison INTEGER NOT NULL,
noCommande INTEGER NOT NULL,
noArticle INTEGER NOT NULL,
quantitéLivrée INTEGER NOT NULL,
PRIMARY KEY (noLivraison, noCommande, noArticle),
FOREIGN KEY (noLivraison) REFERENCES Livraison,
FOREIGN KEY (noCommande, noArticle) REFERENCES LigneCommande
merci
A voir également:
- Oracle manipulation table
- Table ascii - Guide
- Table des matières word - Guide
- Table des caractères - Guide
- Table des annexes word ✓ - Forum Word
- Mode anti manipulation involontaire - Forum Xiaomi
3 réponses
Oui , tout à fait raison , c'est ça :
Une contrainte se désactive de la manière suivante :
ALTER TABLE ma_table DISABLE CONSTRAINT ma_constraint;
et se réactive :
ALTER TABLE ma_table ENABLE CONSTRAINT ma_constraint;
Remarque : ici " ma_constraint " c'est la contrainte de clé étrangère que tu veux désactiver
a+
Une contrainte se désactive de la manière suivante :
ALTER TABLE ma_table DISABLE CONSTRAINT ma_constraint;
et se réactive :
ALTER TABLE ma_table ENABLE CONSTRAINT ma_constraint;
Remarque : ici " ma_constraint " c'est la contrainte de clé étrangère que tu veux désactiver
a+
lorsque tu crée plusieurs tables en sql , tu dois:
1) commencer par créer les tables référencées avant celles qui les référencent .
2) remplir les tables référencées par des tuples avant les tables qui les référencent , sinon les tuples que tu insère ne vont pas être acceptés !
propositions :
si tu es débutant(e) en sql :
supprime toutes les tables et refais la création des tables et l'insertion comme je t'ai expliqué.
si tu connais bien sql :
tu désactive les contraintes de clés étrangères , tu fais l'insertion , puis enfin tu les réactives
fais moi signe de ce que tu as fait
bon courage :)
1) commencer par créer les tables référencées avant celles qui les référencent .
2) remplir les tables référencées par des tuples avant les tables qui les référencent , sinon les tuples que tu insère ne vont pas être acceptés !
propositions :
si tu es débutant(e) en sql :
supprime toutes les tables et refais la création des tables et l'insertion comme je t'ai expliqué.
si tu connais bien sql :
tu désactive les contraintes de clés étrangères , tu fais l'insertion , puis enfin tu les réactives
fais moi signe de ce que tu as fait
bon courage :)