Bonjour !
Je réalise pour mon stage de 1°année le site de la radio de mon lycée avec un collègue.
Je viens quérir un ptit cop de pouce car mon MCD est validé mais j'ai un problème avec mon script de création de base sous MySQL :
Il ya dans le lot deux tables Disque et Morceau.
Je voudrais que le numéro de morceau soit relatif au numéro de disque :
par exemple le disque 15 a des morceaux de 1 à 9 et le disque 27 des morceaux de 1 à 14.
j'a donc dait ceci dans mon script :
Mais lors de l'execution, MySQL me renvoie 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 CREATE TABLE Disque ( NoDisque INTEGER NOT NULL AUTO_INCREMENT, TitreDisque VARCHAR(60) NOT NULL, Artiste VARCHAR(40), PRIMARY KEY(NoDisque) ) TYPE=InnoDB; CREATE TABLE Morceau ( NoDisque INTEGER NOT NULL, NoMorceau INTEGER NOT NULL AUTO_INCREMENT, TitreMorceau VARCHAR(50) NOT NULL, DureeMorceau INTEGER(3) NOT NULL, PRIMARY KEY(NoDisque, NoMorceau) FOREIGN KEY(NoDisque) REFERENCES Disque(NoDisque) ) TYPE=InnoDB;
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
J'ai beau retourner ça dans tous les sens je ne vois pas ce qui cloche, ça correspond bien à ce qu'on a fait au niveau des schémas relationnels dans l'année...
de plus (mais j'ai peut etre mal compris quelque chose ) le champ NoDisque de MORCEAU ne devrait pas etre considéré comme auto-incrémenté vu que c'est juste un appel des valeurs qui sont dans DISQUE... Il n'y a donc qu'un seul champ auto-incrémenté dans ma table et il est bien dans la clef primaire.
Merci d'avance aux bonne âmes qui voudront bien jeter un ptit coup d'oeil la dessus et qui pourraient me proposer une syntaxe valable dans MySQL pour ce souci
(J'ai parcouru un peu le forum mais je n'ai pas vu de titres se rapportant aux identifiants relatifs, et l'aide MySQl ne m'a pas vraiment avancé...)
Partager