Mysql clé primaire lors de l'utilisation de l'INSÉRER DANS ... SUR le DOUBLE de la CLÉ de mise à JOUR

Ma structure de la table est:

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 qu'il soit en double, après autour de google, j'ai trouvé ce format:

INSERT INTO users_settings_temp(...)
ON DUPLICATE KEY UPDATE data = '{$data}'

Je crois que le problème est dans ma table, la clé primaire => id. Comment puis-je modifier la table, pour que je puisse utiliser l':

INSERT INTO ... ON DUPLICATE KEY UPDATE

Puis-je utiliser user_id + type de clé primaire? Si oui, pourriez-vous s'il vous plaît me montrer comment faire?

  • Exactement ce que vous voulez vous produire sur un duplicata? Jeter? Modifier les données de quelque chose?
  • Désolé de ne pas spécifiques. Je veux mettre à Jour lors de son double. Je vais mettre à jour ma question peu de temps.
InformationsquelleAutor webdev_007 | 2010-12-03