Rechercher : dans
Par :

Oracle manipulation table

Dernière réponse le 13 fév 2009 à 15:01:25 Sharky1x, le 13 fév 2009 à 00:52:08 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 3.0.6

Meilleures réponses pour « oracle manipulation table » dans :
Manipulations élémentaires des tableaux sous MatLab VoirSommaire I. Stockage des tableaux II. L'indexation linéaire II.1. Accéder à un élément d'un tableau en utilisant l'indexation linéaire II.2. Passer d'une indexation à l'autre II.2.1. La fonction ind2sub II.2.2. La fonction sub2ind III. La...
Oracle - Statistiques générales VoirPour générer des statistiques générales relatives à votre base de données, il suffit de lancer le script : $ORACLE_HOME/rdbms/admin/utlbstat.sql Des informations utiles sont alors affichées. Activer l’audit sur un objet Pour activer l’audit...
Oracle - Les séquences VoirCet article s'appuie sur la version 8.1.6 d'Oracle. Une séquence est un objet de base de données Oracle, au même titre qu'une table, une vue, etc... Autrement dit, il appartient à un utilisateur, on peut le manipuler, le modifier, à condition...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...
SQL - Modification de table VoirModification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...

1

masterx_goldman, le 13 fév 2009 à 10:00:45
  • +2

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 :)

Répondre à masterx_goldman

2

Sharky1x, le 13 fév 2009 à 14:49:57
  • +2

Desole mais comment faire pour désactive les contraintes de clés étrangères puis les reactive apres ;
je veux dire on utilise ALTER ???


merci;

Répondre à Sharky1x

3

 masterx_goldman, le 13 fév 2009 à 15:01:25
  • +2

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+

Répondre à masterx_goldman