Le moyen le plus rapide de mettre à jour une table MySQL si la ligne existe else insert. Plus de 2 clés non uniques
J'ai le tableau suivant de la structure:
CREATE TABLE IF NOT EXISTS `reports` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`day` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`siteid` int(11) NOT NULL,
`cid` int(3) NOT NULL,
`visits` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
Actuellement, je check & insérer/mettre à jour avec le fragment de code suivant:
$checkq = mysql_query("SELECT count(*) as rowexist FROM reports WHERE day='$day' AND uid='$uid' AND siteid='$sid' AND cid='$cid'") or die(mysql_error());
$checkr = mysql_fetch_array($checkq);
if ($checkr['rowexist'] > 0) {
mysql_query("UPDATE reports_adv SET visits=visits+1 WHERE day='$day' AND uid='$uid' AND siteid='$sid' AND cid='$cid'");
} else {
mysql_query("INSERT INTO reports_adv SET day='$day', uid='$uid', siteid='$sid', cid='$cid', visits='1'");
}
Est un moyen le plus rapide de mettre à jour cette table MySQL si la ligne existe d'autre insert avec plus de 2 non-clés uniques?
source d'informationauteur dracosu
Vous devez vous connecter pour publier un commentaire.
suffit d'utiliser
INSERT...ON DUPLICATE KEY UPDATE
mais avant toute chose, vous devez définir un
UNIQUE
de contrainte sur les colonnes.