MySQLの一意のインデックスは、単一の列にある必要はありません。 ALTER TABLE..ADD UNIQUE
でさらに列を指定するだけで、複数の列にUNIQUEインデックスを追加できます。 ステートメント:
ALTER TABLE myTable ADD UNIQUE (
mykey,
myfoo
);
これで、通常のINSERT INTO...ON DUPLICATE KEY
を使用できます。 ステートメント。
SQLFiddleデモ (複数の繰り返される値は追加されないことに注意してください-他のすべては追加されます )
注 :
どちらかがNULLの場合、ありません 一意としてカウントされます。 mykey
'bar'およびmyfoo
であること NULLであることは、「同じ」値であっても無限大に追加される可能性があります(NULLは実際には値ではありません)。