Fork me on GitHub

Rapport de message :*
 

Erreur mysql.sql avec contrainte entre les tables

Titre du sujet : Erreur mysql.sql avec contrainte entre les tables
par DragonTribal sur 17/11/2010 12:26:21

bonjour, voila nous avons créer un module en php, que nous voulons intégrer comme modules xoops.

nous rencontrons déja un premier problème dans le fichier sql/mysql.php

il semble que xoops n'arrivent pas a lire les contraintes dans le fichier mysql.sql.
dans mon fichier xoops_version.php j'ai placer ceci :

$modversion['sqlfile']['mysql'] = "sql/mysql.sql";
$modversion['tables'] = array(
    
"FC_game_events_connexions",
    
"FC_game_events_events",
    
"FC_game_events_jeux",
    
"FC_game_events_jeux_users",
    
"FC_game_events_team_membres",
    
"FC_game_events_team",
    
"FC_game_events_users",
    
"FC_game_events_team_users_data",
);




Et dans le fichier mysql.sql

-- 
-- 
Structure de la table `FC_game_events_connexions`
-- 

CREATE TABLE `FC_game_events_connexions` (
  `
loginvarchar(100collate latin1_general_ci NOT NULL,
  `
tokenvarchar(47collate latin1_general_ci NOT NULL,
  `
ipvarchar(60collate latin1_general_ci default NULL,
  `
date_debut_sessionint(11) default NULL,
  `
date_dernier_acces_sessionint(11) default NULL,
  
PRIMARY KEY  (`login`,`token`),
  
UNIQUE KEY `token_UNIQUE` (`token`),
  
UNIQUE KEY `login_UNIQUE` (`login`),
  
KEY `fk_connexsions_login` (`login`),
  
KEY `ip_unique` (`login`,`ip`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- 
-- 
Contenu de la table `FC_game_events_connexions`
-- 


-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_events`
-- 

CREATE TABLE `FC_game_events_events` (
  `
idint(11NOT NULL auto_increment,
  `
nomvarchar(45collate latin1_general_ci default NULL,
  `
date_debuttimestamp NULL default NULL,
  `
date_fintimestamp NULL default NULL,
  `
createurint(11NOT NULL,
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
team_idint(11) default NULL,
  `
commentairetext collate latin1_general_ci NOT NULL,
  `
restreint_equipetinyint(1) default '0' COMMENT 'apply to other teams',
  `
displaytinyint(1) default '1' COMMENT 'apply to everybody',
  `
demande_de_matchtinyint(1) default '0',
  
PRIMARY KEY  (`id`),
  
KEY `fk_FC_game_events_events_FC_game_events_jeux1` (`nom_jeu`),
  
KEY `fk_FC_game_events_events_FC_game_events_teams1` (`team_id`),
  
KEY `fk_FC_game_events_events_FC_game_events_users1` (`createur`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Contenu de la table `FC_game_events_events`
-- 


-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_jeux`
-- 

CREATE TABLE `FC_game_events_jeux` (
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
descriptiontext collate latin1_general_ci,
  
PRIMARY KEY  (`nom_jeu`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- 
-- 
Contenu de la table `FC_game_events_jeux`
-- 

INSERT INTO `FC_game_events_jeuxVALUES ('Aion''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Battlefield Bad Company 2''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('CS''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Waaah''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Woups''un jeu');
INSERT INTO `FC_game_events_jeuxVALUES ('Wow''un jeu');

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_jeux_users`
-- 

CREATE TABLE `FC_game_events_jeux_users` (
  `
nom_jeuvarchar(100collate latin1_general_ci NOT NULL,
  `
user_idint(11NOT NULL,
  
PRIMARY KEY  (`nom_jeu`,`user_id`),
  
KEY `fk_FC_game_events_jeux_has_FC_game_events_users_FC_game_event2` (`user_id`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- 
-- 
Contenu de la table `FC_game_events_jeux_users`
-- 


-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_team_members`
-- 

CREATE TABLE `FC_game_events_team_members` (
  `
team_idint(11NOT NULL,
  `
user_idint(11NOT NULL,
  `
validetinyint(1NOT NULL default '0',
  
PRIMARY KEY  (`team_id`,`user_id`),
  
KEY `fk_FC_game_events_teams_has_FC_game_events_users_FC_game_even2` (`user_id`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- 
-- 
Contenu de la table `FC_game_events_team_members`
-- 

INSERT INTO `FC_game_events_team_membersVALUES (111);
INSERT INTO `FC_game_events_team_membersVALUES (121);
INSERT INTO `FC_game_events_team_membersVALUES (131);
INSERT INTO `FC_game_events_team_membersVALUES (221);
INSERT INTO `FC_game_events_team_membersVALUES (231);
INSERT INTO `FC_game_events_team_membersVALUES (321);
INSERT INTO `FC_game_events_team_membersVALUES (331);
INSERT INTO `FC_game_events_team_membersVALUES (421);

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_teams`
-- 

CREATE TABLE `FC_game_events_teams` (
  `
team_idint(11NOT NULL auto_increment,
  `
nomvarchar(100collate latin1_general_ci NOT NULL,
  `
descriptiontext collate latin1_general_ci,
  `
createurint(11NOT NULL,
  `
chefint(11NOT NULL,
  `
date_creationtimestamp NULL default NULL,
  `
lien_vocalvarchar(255collate latin1_general_ci default NULL,
  
PRIMARY KEY  (`team_id`),
  
UNIQUE KEY `nom_UNIQUE` (`nom`),
  
KEY `fk_FC_game_events_teams_FC_game_events_users1` (`createur`),
  
KEY `nom_INDEX` (`nom`),
  
KEY `fk_FC_game_events_teams_FC_game_events_users2` (`chef`)
ENGINE=InnoDB AUTO_INCREMENT=DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Contenu de la table `FC_game_events_teams`
-- 

INSERT INTO `FC_game_events_teamsVALUES (1'The best''On est les meilleurs'22'0000-00-00 00:00:00'NULL);
INSERT INTO `FC_game_events_teamsVALUES (2'Cat''s eye''En avant l''aventure !'22'0000-00-00 00:00:00'NULL);
INSERT INTO `FC_game_events_teamsVALUES (3'Ma team !''azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop'22'0000-00-00 00:00:00'NULL);
INSERT INTO `FC_game_events_teamsVALUES (4'Ma team !(3)''azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop'22'0000-00-00 00:00:00'NULL);

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_users`
-- 

CREATE TABLE `FC_game_events_users` (
  `
user_idint(11NOT NULL auto_increment,
  `
loginvarchar(100collate latin1_general_ci default NULL,
  `
mdpvarchar(512collate latin1_general_ci default NULL,
  `
mailvarchar(255collate latin1_general_ci default NULL,
  
PRIMARY KEY  (`user_id`),
  
UNIQUE KEY `login_UNIQUE` (`login`)
ENGINE=InnoDB AUTO_INCREMENT=DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Contenu de la table `FC_game_events_users`
-- 

INSERT INTO `FC_game_events_usersVALUES (1'toto''a7102b267e67049289d53b0036c345cd''compte@de.test');
INSERT INTO `FC_game_events_usersVALUES (2'admin''495ed4845515d52f29a95994b5924b3a''admin@admin.fr');
INSERT INTO `FC_game_events_usersVALUES (3'tata''7e0f561b370cc58fa4fe04a766520a3d''test01@test01.fr');

-- --------------------------------------------------------

-- 
-- 
Structure de la table `FC_game_events_users_data`
-- 

CREATE TABLE `FC_game_events_users_data` (
  `
user_idint(11NOT NULL auto_increment,
  `
sitetext collate latin1_general_ci NOT NULL,
  `
vocalenum('Mumble','TeamSpeak 2','TeamSpeak 3','Skype','Ventrilo'collate latin1_general_ci NOT NULL,
  `
ipvocalvarchar(22collate latin1_general_ci NOT NULL,
  `
serveurjeuenum('Priver','Public'collate latin1_general_ci NOT NULL,
  `
ipserveurvarchar(22collate latin1_general_ci NOT NULL,
  
PRIMARY KEY  (`user_id`),
  
UNIQUE KEY `user_id_UNIQUE` (`user_id`),
  
KEY `fk_FC_game_events_events_FC_game_events_users_data1` (`user_id`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Contenu de la table `FC_game_events_users_data`
-- 


-- 
-- 
Contraintes pour les tables exportées
-- 

-- 
-- 
Contraintes pour la table `FC_game_events_connexions`
-- 
ALTER TABLE `FC_game_events_connexions`
  
ADD CONSTRAINT `fk_connexsions_loginFOREIGN KEY (`login`) REFERENCES `FC_game_events_users` (`login`) ON DELETE NO ACTION ON UPDATE CASCADE;

-- 
-- 
Contraintes pour la table `FC_game_events_events`
-- 
ALTER TABLE `FC_game_events_events`
  
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_jeux1FOREIGN KEY (`nom_jeu`) REFERENCES `FC_game_events_jeux` (`nom_jeu`) ON DELETE NO ACTION ON UPDATE CASCADE,
  
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_teams1FOREIGN KEY (`team_id`) REFERENCES `FC_game_events_teams` (`team_id`) ON DELETE NO ACTION ON UPDATE SET NULL,
  
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_users1FOREIGN KEY (`createur`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE CASCADE;

-- 
-- 
Contraintes pour la table `FC_game_events_jeux_users`
-- 
ALTER TABLE `FC_game_events_jeux_users`
  
ADD CONSTRAINT `fk_FC_game_events_jeux_has_FC_game_events_users_FC_game_event1FOREIGN KEY (`nom_jeu`) REFERENCES `FC_game_events_jeux` (`nom_jeu`) ON DELETE CASCADE ON UPDATE CASCADE,
  
ADD CONSTRAINT `fk_FC_game_events_jeux_has_FC_game_events_users_FC_game_event2FOREIGN KEY (`user_id`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- 
Contraintes pour la table `FC_game_events_team_members`
-- 
ALTER TABLE `FC_game_events_team_members`
  
ADD CONSTRAINT `fk_FC_game_events_teams_has_FC_game_events_users_FC_game_even1FOREIGN KEY (`team_id`) REFERENCES `FC_game_events_teams` (`team_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  
ADD CONSTRAINT `fk_FC_game_events_teams_has_FC_game_events_users_FC_game_even2FOREIGN KEY (`user_id`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- 
Contraintes pour la table `FC_game_events_teams`
-- 
ALTER TABLE `FC_game_events_teams`
  
ADD CONSTRAINT `fk_FC_game_events_teams_FC_game_events_users1FOREIGN KEY (`createur`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
  
ADD CONSTRAINT `fk_FC_game_events_teams_FC_game_events_users2FOREIGN KEY (`chef`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

-- 
-- 
Contraintes pour la table `FC_game_events_users_data`
-- 
ALTER TABLE `FC_game_events_users_data`
  
ADD CONSTRAINT `fk_FC_game_events_events_FC_game_events_users_data1FOREIGN KEY (`user_id`) REFERENCES `FC_game_events_users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;



Reponse de xoops après le clic installer le module

Can't create table './db346523038/#sql-30f_3351a.frm' (errno: 150)




Si je suprime les contraintes du fichier mysql.sql, le script fonctionne tres bien.
Avez-vous une idée du problème, ou est ce que xoops n'arrive pas a lire les contraintes entre des tables au moment d'une installation .

Dans l'attente d'une réponse, passer une bonne journée tout le monde.


Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

59 Personne(s) en ligne (47 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 59 | Plus ...