J'ai les tableaux suivants et j'essaye de les exécuter en MySQL mais je continue à obtenir un errno 150. Je ne sais pas exactement pourquoi, mais MySQL ne semble pas pouvoir créer la contrainte de clé étrangère. J'ai déjà regardé les règles pour configurer les FK pour InnoDB et tout semble correct. Est-ce que quelqu'un pourrait me prêter un autre regard et une expertise?MySQL InnoDB Problèmes de clé étrangère
-- Table publication_type (parent table)
CREATE TABLE publication_type (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
publication_type varchar(55) NOT NULL,
tstamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT publication_type_pk PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Table publication (child table)
CREATE TABLE publication (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
authors varchar(255) NOT NULL,
publication_title varchar(100) NOT NULL,
publication_type_id int(11) UNSIGNED NOT NULL,
user_id int(11) UNSIGNED NOT NULL,
CONSTRAINT publication_pk PRIMARY KEY (id),
CONSTRAINT publication_type_fk FOREIGN KEY (publication_type_id) REFERENCES publication_type(id) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Merci @ Matteo, mais j'ai édité le script (voir ci-dessus) et il donne toujours la même erreur. – gabz
Exécutez ensuite SHOW INNODB STATUS et vérifiez l'erreur réelle. –