Proleme en créant les tables

Fermé
beno-yac Messages postés 96 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 16 décembre 2020 - 20 févr. 2013 à 00:40
 Utilisateur anonyme - 20 févr. 2013 à 08:54
Bonjour,
j'ai un petit problème lors de la création de mes tables et je n'arrive pas a comprendre pour quoi ...
alors j'ai 4 tables station activité sejour et client voila mon l'erreur qu'il m'afficher pour info je suis sous Oracle G11 express Sql:


create table Station (
nom_station varchar(10),
capacite integer not null,
lieu varchar(10) not null UNIQUE,
region varchar(10),
tarif integer default 0 CHECK ( tarif > 0),
primary key (nom_station)
);
create table Activite(
nom_station varchar(10),
libele varchar(10),
prix integer not null default 0 CHECK ( prix > 0 ),
Foreign key (nom_station) REFERENCES Station(nom_station)ON DELETE CASCADE,
primary key (nom_station,libele)
);
create table client(
id_c integer,
nom varchar(10) not null,
prenom varchar(10),
ville varchar(10) not null,
region varchar(10),
solde integer not null default 0 CHECK ( solde > 0 ),
primary key (id_c)
);
create table sejour(
id_s integer ,
nom_station varchar(10),
debut date,
nbplace integer not null,
primary key (id_s,nom_station,debut),
foreign key (id_s) references sejour(id_s),
foreign key (nom_station) references station(nom_station)On DELETE CASCADE
);
et voila l'erreur afficher merci

Erreur à la ligne de commande : 31, colonne : 31
Rapport d'erreur :
Erreur SQL : ORA-02270: no matching unique or primary key for this column-list
02270. 00000 - "no matching unique or primary key for this column-list"
*Cause: A REFERENCES clause in a CREATE/ALTER TABLE statement
gives a column-list for which there is no matching unique or primary
key constraint in the referenced table.
*Action: Find the correct column names using the ALL_CONS_COLUMNS
catalog view

merci pour votre aide d'avance

1 réponse

Utilisateur anonyme
20 févr. 2013 à 08:54
Bonjour

Je ne m'y connais pas en SQL mais le message d'erreur me semble explicite : le nom de colonne (id_s) que tu donnes à la ligne 31 ne correspond à aucune clé unique ou primaire, ce qui est vrai : id_s n'est pas une clé de sejour.
D'ailleurs, je ne comprends pas très bien non plus ce que signifie une clé étrangère sur une table elle-même, mais comme je l'ai dit je ne m'y connais pas en SQL.
0