PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-11-2010 08:00:27

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Erreur de syntaxe create table

Salut les gens,

bon ben voila je joue avec mysql workbench, c'est rigolo mais il créer des tables bizard mais surtout que mysql ne veut pas.
L'un d'entre vous peut il me dit ce qui ne va pas dans ce qui suit ?

pour info le message d'erreur : Error | 1005 | Can't create table 'mediatheque.adherents' (errno: 150)


CREATE  TABLE IF NOT EXISTS `mediatheque`.`adherents` (
  `idadherents` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `nom` TINYTEXT NOT NULL ,
  `prenom` TINYTEXT NOT NULL ,
  `villes_idvilles` INT UNSIGNED NOT NULL ,
  `complementadresse` TINYTEXT NOT NULL ,
  `telephone` TINYTEXT NULL ,
  `email` TINYTEXT NULL ,
  `sexe` ENUM('M','F') NOT NULL DEFAULT 'M' ,
  PRIMARY KEY (`idadherents`, `villes_idvilles`) ,
  INDEX `fk_adherents_villes1` (`villes_idvilles` ASC) ,
  CONSTRAINT `fk_adherents_villes1`
    FOREIGN KEY (`villes_idvilles` )
    REFERENCES `mediatheque`.`villes` (`idvilles` )
    ON DELETE SET NULL
    ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'ce sont lesgens qui emprunte les trucs de la mediatheques';
 

Merci grandement smile

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#2 09-11-2010 23:51:17

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Erreur de syntaxe create table

hum bon j'ai trouvé le pb a force de bidouiller mais je sais pas pourquoi


CREATE  TABLE adherents (
  `idadherents` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `nom` TINYTEXT NOT NULL ,
  `prenom` TINYTEXT NOT NULL ,
  `villes_idvilles` INT UNSIGNED NOT NULL ,
  `complementadresse` TINYTEXT NOT NULL ,
  `telephone` TINYTEXT NULL ,
  `email` TINYTEXT NULL ,
  `sexe` ENUM('M','F') NOT NULL DEFAULT 'M' ,
  PRIMARY KEY (`idadherents`, `villes_idvilles`) ,
  INDEX `fk_adherents_villes1` (`villes_idvilles`) ,
  CONSTRAINT `fk_adherents_villes1`
    FOREIGN KEY (`villes_idvilles` )
    REFERENCES `mediatheque`.`villes` (`idvilles` )
    ON DELETE cascade
    ON UPDATE CASCADE
  )ENGINE = InnoDB;

    ON DELETE cascade le set null n'est pas apprécié faudrais que je vois dans la doc le pourquoi du comment mais c'est assez obscure smile

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 10-11-2010 00:30:28

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Erreur de syntaxe create table

Saluton,

Si vous spécifiez une action SET NULL, assurez vous que vous n'avez pas déclaré les colonnes de la table fille NOT NULL.

Or,

`idadherents` INT UNSIGNED NOT NULL AUTO_INCREMENT

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 10-11-2010 13:34:40

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Erreur de syntaxe create table

a ba oui le crétin hmm

Merci MK, j'y avais pas du tout pensé hmm

ça me montre que les outils sont pas toujours moins bête que moi smile

après la séance de flagellation je retour chatouiller postgre

merci

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums