Bonjour à tous,
Après quelques recherches sur le net, je viens vers vous car je n'arrive à trouver de solution:
J'ai donc 3 tables : utilisateurs, systemes, planetes.
utilisateurs :
systemes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE `utilisateurs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pseudo` varchar(16) NOT NULL, `password` varchar(128) NOT NULL, `naissance` date DEFAULT NULL, `ip_inscription` varchar(32) NOT NULL, `statut` varchar(32) NOT NULL, `genre` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
planetes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE `test_systemes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `coordonnees` varchar(16) NOT NULL, `nb_planetes` int(5) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Donc mon but est de pouvoir supprimer un utilisateur qui a une planète sans supprimer la planète et donc de mettre dans planetes.id_joueur = NULL.
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 CREATE TABLE `test_planetes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_systeme` int(11) NOT NULL, `id_joueur` int(11) DEFAULT NULL, `taux_fer` int(3) NOT NULL, `taux_cuivre` int(3) NOT NULL, `taux_carbone` int(3) NOT NULL, `taux_hydrogene` int(3) NOT NULL, `taux_zinc` int(3) NOT NULL, `taux_plomb` int(3) NOT NULL, `taux_platine` int(3) NOT NULL, `taux_francium` int(3) NOT NULL, `taux_iode` int(3) NOT NULL, PRIMARY KEY (`id`), KEY `id_joueur` (`id_joueur`), KEY `id_systeme` (`id_systeme`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `test_planetes` ADD CONSTRAINT `test_planetes_ibfk_2` FOREIGN KEY (`id_joueur`) REFERENCES `utilisateurs` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, ADD CONSTRAINT `test_planetes_ibfk_1` FOREIGN KEY (`id_systeme`) REFERENCES `test_systemes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Hors je n'y arrive pas, j'ai ce message :
Merci d'avance pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #1451 - Cannot delete or update a parent row: a foreign key constraint fails (`genesisegame`.`test_planetes`, CONSTRAINT `test_planetes_ibfk_2` FOREIGN KEY (`id_joueur`) REFERENCES `utilisateurs` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Cordialement, Maxime.
Partager