Bonjour, je dois créer une base de données avec 4 tables (clients, médecins, médicaments et ordonnances).
Les clés primaires sont:
numéro_rn pour clients et médecins
id_medicament pour médicaments
et id_ordonnances pour ordonnances
Mon terminal m'indique que j'ai une erreur de syntaxe, voici le message exact:
Et voici mon fichier mysql où tout fonctionne jusqu’à -- Création de la clé étrangères:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(medecins(numero_rn))'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 -- Création de la database avec l'encodage utf-8 CREATE DATABASE IF NOT EXISTS pharmacie CHARACTER SET 'utf8' ; USE pharmacie;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 -- Création de la table clients (nom, prénom, date de naissance, numéro de registre national (clé primaire), -- adresse, médecins traitants (clé étrangaire), commentaires ) DROP TABLE IF EXISTS clients; CREATE TABLE IF NOT EXISTS clients( numero_rn BIGINT(11) PRIMARY KEY NOT NULL, nom VARCHAR(30) NOT NULL, prenom VARCHAR(30) NOT NULL, date_de_naissance DATETIME, adresse VARCHAR(50), localite VARCHAR(30) , code_postal SMALLINT(4) UNSIGNED, commentaires TEXT ) ENGINE=InnoDB;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 -- Création de la table médecins traitants (nom, prénom, date de naissance, numéro de registre national, adresse, clé primaire DROP TABLE IF EXISTS medecins; CREATE TABLE medecins( numero_rn BIGINT(11) PRIMARY KEY NOT NULL, nom VARCHAR(30) NOT NULL, prenom VARCHAR(30) NOT NULL, date_de_naissance DATETIME, adresse VARCHAR(50), localite VARCHAR(30) , code_postal SMALLINT(4) ) ENGINE=InnoDB;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 -- Création de la table médicaments (nom, indication, sous_prescription, remboursé) DROP TABLE IF EXISTS medicaments; CREATE TABLE medicaments( id_medicament MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, indication TEXT, sous_prescription BOOLEAN DEFAULT NULL, remboursement BOOLEAN DEFAULT NULL, PRIMARY KEY(id_medicament) ) ENGINE=InnoDB;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 -- Création de la clé étrangères ALTER TABLE clients ADD CONSTRAINT fk_medecin FOREIGN KEY (numero_rn) REFERENCES (medecins(numero_rn));Merci pour votre aide, je ne comprends vraiment pas où est l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 -- Création de la table ordonnances (date, médicament(s), médecin (key), client (key) ) DROP TABLE IF EXISTS ordonnances; CREATE TABLE ordonnances( id_ordonnance MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, date DATETIME NOT NULL, CONSTRAINT fk_medicament FOREIGN KEY (id_medicaments) REFERENCES (medicaments(id_medicament)), CONSTRAINT fk_medecin FOREIGN KEY (medecins) REFERENCES (medecins(numero_rn)), CONSTRAINT fk_client FOREIGN KEY (clients) REFERENCES (clients(numero_rn)), PRIMARY KEY(id_ordonnance) ) ENGINE=InnoDB;
Partager