Bonjour, je rencontre une erreur sous MySQL sur la création de tables.
J'ai fait quelques recherches sur le sujet dans la matinée. Les solutions proposées à chaque fois sont de mettre un index ou de vérifier les types des variables.
L'index était déjà déclaré au moment de l'erreur, et les types sont identiques.
Je vous mets les 2 tables concernées et l'ALTER d'où provient 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-- =============================================================
-- INTENTION GROUP
-- =============================================================
CREATE TABLE IntentionGroup (
  idIntentionGroup INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idScenario INTEGER UNSIGNED NOT NULL,
  comment VARCHAR(255) NULL,
	rankIG INTEGER NOT NULL,
  PRIMARY KEY(idIntentionGroup),
  INDEX IntentionGroup_FKIndex1(idScenario)
)
TYPE=InnoDB;
 
-- =============================================================
-- STRATEGY
-- =============================================================
CREATE TABLE Strategy (
  idStrategy INTEGER UNSIGNED NOT NULL,
  title VARCHAR(255) NOT NULL,
  comment VARCHAR(255) NULL,
  idIntentionGroup INTEGER NULL,
  strategyCategory VARCHAR(255) NOT NULL,
  strategyType VARCHAR(255) NOT NULL,
  PRIMARY KEY(idStrategy),
  INDEX Strategy_FKIndex1(strategyType),
  INDEX Strategy_FKIndex2(strategyCategory),
  INDEX Strategy_FKIndex3(idIntentionGroup)
)
TYPE=InnoDB;
 
-- ========================================================
-- STRATEGY
-- ========================================================
-- Les autres ALTER sont présents mais je ne les ai pas copié
ALTER TABLE Strategy
	ADD FOREIGN KEY(idIntentionGroup)
	REFERENCES IntentionGroup(idIntentionGroup)
		ON DELETE NO ACTION
		ON UPDATE NO ACTION;
Le message d'erreur étant celui-ci:
Erreur

requête SQL:

ALTER TABLE Strategy ADD FOREIGN KEY ( idIntentionGroup ) REFERENCES IntentionGroup( idIntentionGroup ) ON DELETE NO ACTION ON UPDATE NO ACTION ;

MySQL a répondu: Documentation
#1005 - Can't create table '.\scenedit\#sql-c58_b9.frm' (errno: 150)
Si vous voyez quelque chose dites le moi, je sèche dessus depuis une bonne heure et demie en faisant pas mal de test et de recherche sur ce problème.

En vous remerciant d'avance.

Al