par
eLman » 11 mai 2007, 11:14
J'ai fait ma BD mais le on delete set null ne marche pas.
Voici par exemple pour ma classe commune le code que j'entre dans mysql pour créer la table :
Code : Tout sélectionner
CREATE TABLE `commune` (
`codeINSEE` int(10) unsigned NOT NULL auto_increment,
`IDSSP` int(10) unsigned NOT NULL default '0',
`idCartographie` int(10) unsigned NOT NULL default '0',
`IDcis` int(10) unsigned NOT NULL default '0',
`codePostal` int(10) unsigned default NULL,
`nom_commune` varchar(45) default NULL,
`canton` varchar(45) default NULL,
`arrondissement` varchar(45) default NULL,
`nb_habitants` int(10) unsigned default NULL,
`mail_commune` varchar(45) default NULL,
`nom_maire` varchar(45) default NULL,
PRIMARY KEY (`codeINSEE`),
KEY `Commune_FKIndex1` (`IDcis`),
KEY `Commune_FKIndex2` (`idCartographie`),
KEY `Commune_FKIndex3` (`IDSSP`),
FOREIGN KEY ( `IDcis` ) REFERENCES centre_intervention_securite ( `IDcis` ) ON DELETE SET NULL,
FOREIGN KEY ( `idCartographie` ) REFERENCES cartographie ( `idCartographie` ) ON DELETE SET NULL,
FOREIGN KEY ( `IDSSP` ) REFERENCES service_securite_publique ( `IDSSP` ) ON DELETE SET NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Voici ce que j'obtiens lorsque j'exporte depuis mysql :
Code : Tout sélectionner
--
-- Structure de la table `commune`
--
CREATE TABLE `commune` (
`codeINSEE` int(10) unsigned NOT NULL auto_increment,
`IDSSP` int(10) unsigned NOT NULL default '0',
`idCartographie` int(10) unsigned NOT NULL default '0',
`IDcis` int(10) unsigned NOT NULL default '0',
`codePostal` int(10) unsigned default NULL,
`nom_commune` varchar(45) default NULL,
`canton` varchar(45) default NULL,
`arrondissement` varchar(45) default NULL,
`nb_habitants` int(10) unsigned default NULL,
`mail_commune` varchar(45) default NULL,
`nom_maire` varchar(45) default NULL,
PRIMARY KEY (`codeINSEE`),
KEY `Commune_FKIndex1` (`IDcis`),
KEY `Commune_FKIndex2` (`idCartographie`),
KEY `Commune_FKIndex3` (`IDSSP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=39101 ;
Où sont passé mes foreign key et mes references ???
J'ai l'impression qu'il ne me les prend pas en compte.
Je tiens à dire que ma bd marche niquel juste le fait qu'il me prend pas en compte les on delete set null ...
Par exemple à ma commune je lui affecte un SSP donc IDSSP = 1 de commune passe à 1, lorsque je supprime le SSP j'aimerais que IDSSP repasse à 0 ou NULL, mais non il reste à 1 malgrès que le SSP ait été supprimé.
Je suis en utf8_general_ci dans mysql 4.19 (easyPHP 1.8).
Merci de votre aide.
J'ai fait ma BD mais le on delete set null ne marche pas.
Voici par exemple pour ma classe commune le code que j'entre dans mysql pour créer la table :
[code]CREATE TABLE `commune` (
`codeINSEE` int(10) unsigned NOT NULL auto_increment,
`IDSSP` int(10) unsigned NOT NULL default '0',
`idCartographie` int(10) unsigned NOT NULL default '0',
`IDcis` int(10) unsigned NOT NULL default '0',
`codePostal` int(10) unsigned default NULL,
`nom_commune` varchar(45) default NULL,
`canton` varchar(45) default NULL,
`arrondissement` varchar(45) default NULL,
`nb_habitants` int(10) unsigned default NULL,
`mail_commune` varchar(45) default NULL,
`nom_maire` varchar(45) default NULL,
PRIMARY KEY (`codeINSEE`),
KEY `Commune_FKIndex1` (`IDcis`),
KEY `Commune_FKIndex2` (`idCartographie`),
KEY `Commune_FKIndex3` (`IDSSP`),
FOREIGN KEY ( `IDcis` ) REFERENCES centre_intervention_securite ( `IDcis` ) ON DELETE SET NULL,
FOREIGN KEY ( `idCartographie` ) REFERENCES cartographie ( `idCartographie` ) ON DELETE SET NULL,
FOREIGN KEY ( `IDSSP` ) REFERENCES service_securite_publique ( `IDSSP` ) ON DELETE SET NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;[/code]
Voici ce que j'obtiens lorsque j'exporte depuis mysql :
[code]--
-- Structure de la table `commune`
--
CREATE TABLE `commune` (
`codeINSEE` int(10) unsigned NOT NULL auto_increment,
`IDSSP` int(10) unsigned NOT NULL default '0',
`idCartographie` int(10) unsigned NOT NULL default '0',
`IDcis` int(10) unsigned NOT NULL default '0',
`codePostal` int(10) unsigned default NULL,
`nom_commune` varchar(45) default NULL,
`canton` varchar(45) default NULL,
`arrondissement` varchar(45) default NULL,
`nb_habitants` int(10) unsigned default NULL,
`mail_commune` varchar(45) default NULL,
`nom_maire` varchar(45) default NULL,
PRIMARY KEY (`codeINSEE`),
KEY `Commune_FKIndex1` (`IDcis`),
KEY `Commune_FKIndex2` (`idCartographie`),
KEY `Commune_FKIndex3` (`IDSSP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=39101 ;[/code]
Où sont passé mes foreign key et mes references ???
J'ai l'impression qu'il ne me les prend pas en compte.
Je tiens à dire que ma bd marche niquel juste le fait qu'il me prend pas en compte les on delete set null ...
Par exemple à ma commune je lui affecte un SSP donc IDSSP = 1 de commune passe à 1, lorsque je supprime le SSP j'aimerais que IDSSP repasse à 0 ou NULL, mais non il reste à 1 malgrès que le SSP ait été supprimé.
Je suis en utf8_general_ci dans mysql 4.19 (easyPHP 1.8).
Merci de votre aide.