Bonjour,

Après un tour sur la FAQ et une recherche (toujours bon de se justifier)
Je ne parviens pas à créer une table dont la clef primaire serait une clef étrangère.
Dans mon modèle cela correspond en fait à un sous typage et ce modèle logique me convient bien.

Merci de m'éclairer là dessus,
Cordialement
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
22
23
24
25
26
27
28
29
30
31
32
33
/*
	PERSONNE
*/
CREATE TABLE	PERSONNE (
	id_prsn			int(6),
	nom_prsn		varchar(30),
	prenom_prsn		varchar(30),
	mail_presn		varchar(50),
	tel_prsn		int(10),
	mobile_prsn		int(10),
	adresse_prsn		text,
	CP_prsn			int(5),
	ville_prsn		varchar(50)
)
ENGINE = InnoDB;
ALTER TABLE	PERSONNE
	ADD CONSTRAINT pk_prsn PRIMARY KEY (id_prsn);
 
-- Sous types personne
CREATE TABLE	COLLABORATEUR (
	id_prsn			int(6),
	niveau_col		int
)
ENGINE = InnoDB;
ALTER TABLE	COLLABORATEUR
	ADD CONSTRAINT pk_prsn PRIMARY KEY (id_prsn);
 
-- Héritage du parent (personne)
ALTER TABLE	COLLABORATEUR
	ADD CONSTRAINT fk_prsn FOREIGN KEY (id_prsn) REFERENCES PERSONNE(id_prsn);
/*
	/PERSONNE
*/