[MySql 5.5.24 ]Problème Insert Duplicate on key update
Bonjour,
J'ai créé une base de données dans laquelle il y a trois tables:
Joueur :
Code:
1 2 3 4 5 6 7 8 9
|
CREATE TABLE IF NOT EXISTS `joueur` (
`email` varchar(255) NOT NULL,
`prenom` char(30) NOT NULL,
`nom` char(30) NOT NULL,
`anniversaire` date NOT NULL,
`password` varchar(256) DEFAULT NULL,
PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
Jeux :
Code:
1 2 3 4 5 6
|
CREATE TABLE IF NOT EXISTS `jeux` (
`idjeux` int(11) NOT NULL AUTO_INCREMENT,
`name` char(30) NOT NULL,
PRIMARY KEY (`idjeux`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; |
Essais :
Code:
1 2 3 4 5 6 7 8 9 10
|
CREATE TABLE IF NOT EXISTS `essais` (
`idessais` int(11) NOT NULL,
`dateessais` date NOT NULL,
`email` varchar(128) NOT NULL,
`score` bigint(4) DEFAULT NULL,
PRIMARY KEY (`idessais`,`dateessais`),
KEY `I_FK_tryes_games` (`idessais`),
KEY `I_FK_tryes_client` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
Les contraintes de la table essais :
Code:
1 2 3 4
|
ALTER TABLE `essais`
ADD CONSTRAINT `essais_ibfk_1` FOREIGN KEY (`email`) REFERENCES `joueur` (`email`),
ADD CONSTRAINT `essais_ibfk_2` FOREIGN KEY (`idjeux`) REFERENCES `jeux` (`idjeux`); |
J'essaie qu'à chaque connexion d'un joueur, si il est déjà présent dans la table essais, la colonne "datessais" se mette à jour et si le joueur n'est pas présent une nouvelle ligne soit créée.
J'utilise cette requête :
Code:
1 2
|
insert into essais (idjeux, dateessais, email, score) values (2, CURRENT_DATE(), 'maurice.roger@truc.com', NULL) on duplicate key update dateessais values(dateessais); |
La ligne étant déjà existante je me retrouve, non pas avec une ligne avec la date modifiée, mais avec une nouvelle ligne, la requête effectue l'insertion plutôt que la mise à jour.
Merci pour votre aide.