Bonjour a tous.
Lors du lancement d'un script sql sous PHPMyadmin j'obtiens une erreur lors de la creation de la derniere table `users`.
Celle ci contient des Foreign Keys envers une table `paises` (pays).
L'erreur obtenu est
"#1005 - Ne peut créer la table 'com.users' (Errcode: 150) "
J'ai controle le code, a priori pas de fautes de frappe.
Voici le script
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
-- SQL Script
-- ----------------------------------------------------------------------
SET FOREIGN_KEY_CHECKS = 0;
-- -------------------------------------
-- Tables
 
DROP TABLE IF EXISTS `categorias`;
CREATE TABLE `categorias` (
  `cat_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `cat_nome` VARCHAR(32)  NOT NULL,
  PRIMARY KEY (`cat_id`)
)
ENGINE = InnoDB
CHARACTER SET latin1 COLLATE latin1_swedish_ci;
 
DROP TABLE IF EXISTS `artigos`;
CREATE TABLE `artigos` (
  `art_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `art_nome` VARCHAR(32) NOT NULL,
  `art_desc` VARCHAR(80) NOT NULL,
  `cat_id` INT(11) UNSIGNED NOT NULL,
  PRIMARY KEY (`art_id`),
  CONSTRAINT `FKcategorias` FOREIGN KEY `FKcategorias` (`cat_id`)
    REFERENCES `categorias` (`cat_id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
ENGINE = InnoDB
CHARACTER SET latin1 COLLATE latin1_swedish_ci;
 
DROP TABLE IF EXISTS `Imagens`;
CREATE TABLE `Imagens` (
	`imagem_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
	`imagem_nome` VARCHAR(32) NOT NULL,
	`imagem_data` DATETIME NOT NULL,
	`art_id` INT(11) UNSIGNED NOT NULL,
	PRIMARY KEY (`imagem_id`),
CONSTRAINT `FKartigos` FOREIGN KEY `FKartigos` (`art_id`)
    REFERENCES `artigos` (`art_id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE
)
ENGINE = InnoDB
CHARACTER SET latin1 COLLATE latin1_swedish_ci;
 
 
DROP TABLES IF EXISTS `Paises`;
CREATE TABLE Paises (
	`id_pais` INT(11) NOT NULL,
	`nome` varchar(50) NOT NULL
) 
ENGINE = InnoDB
CHARACTER SET latin1;
 
DROP TABLES IF EXISTS `Users`;
CREATE TABLE `Users` (
	`user_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
	`first_name` VARCHAR(20) NOT NULL,
	`last_name` VARCHAR(40) NOT NULL,
	`phone` VARCHAR(30) NOT NULL,
	`email` VARCHAR(60) NOT NULL,
	`pais` VARCHAR(50) NOT NULL,
	`registo` DATETIME NOT NULL,
	`id_pais` INT(11) UNSIGNED NOT NULL,
	PRIMARY KEY (`user_id`),
CONSTRAINT `FKpaises` FOREIGN KEY `FKpaises` (`id_pais`)
	REFERENCES `Paises` (`id_pais`)
	ON DELETE NO ACTION
	ON UPDATE CASCADE
)
ENGINE = InnoDB
CHARACTER SET latin1 COLLATE latin1_swedish_ci;
 
 
SET FOREIGN_KEY_CHECKS = 1;
autrement les autres tables sont correctement crees. J'ai essaye aussi sans les FK envers la table "paises" la bien sur ca marche. Mais plus de FK
Une ame charitable pourrais jeter un coup d'oeil sur mon code et m'aiguiller?
Merci de vos conseils.