Ma structure de table est:Mysql clé primaire lorsque vous utilisez INSERT INTO ... Duplicate KEY UPDATE
CREATE TABLE IF NOT EXISTS `users_settings_temp` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userid` int(10) unsigned DEFAULT NULL,
`type` enum('type1','type2')
`data` text,
`date_created` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Ce que je suis en train de faire est:
Disons que je veux insérer une nouvelle entrée , mais je ne veux pas que ce soit en double, après Google autour, je trouve ce format:
INSERT INTO users_settings_temp(...)
ON DUPLICATE KEY UPDATE data = '{$data}'
Je suppose que le problème est dans ma table, la clé primaire =>id
. Comment puis-je modifier la table, de sorte que je pourrais utiliser le:
INSERT INTO ... ON DUPLICATE KEY UPDATE
Puis-je utiliser user_id + type comme clé primaire? Si oui, pourriez-vous s'il vous plaît me montrer comment le faire?
Que voulez-vous exactement se produire sur un duplicata? Jetez-le? Changer les données à quelque chose? –
Désolé pour ne pas préciser. Je veux mettre à jour quand il est en double. Je vais mettre à jour ma question sous peu. –
clé primaire (ID utilisateur, type) –