編集:私はマペットです。そのため、挿入しようとしていた行を慎重にトロールした後、コードにバグがあり、空の文字列が挿入されていました。これが複数回発生したため、同じデータを再度挿入しようとしたため、MySQL は当然のことながらエラーをスローしました。無駄な時間をすみません!モッズは、これを自由に削除してください。
私のテーブル構造は次のとおりです。
CREATE TABLE IF NOT EXISTS `foo` (
`user` varchar(80) NOT NULL,
`group` varchar(20) NOT NULL,
`completed` int(1) NOT NULL,
PRIMARY KEY (`user`,`group`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ここで、MySQL Insert を実行しようとすると、重複があるというエラーがスローされます (キーが設定されていると機能しません)。私が得られないのは、これらのエラーが表示される理由です。これらの複合値の複製を挿入していないことはわかっています (ただし、一部の値はグループ列に何度も表示されます。
私の挿入の例:INSERT INTO food(user, group, completed) VALUES ('user1', 'groupA', '0'),('user2', 'groupB', '0'),('user3', 'groupA', '0');
したがって、ユーザーとグループの組み合わせは間違いなく一意です。では、一意でないキーを挿入しようとしていると不平を言うのはなぜですか?
#1062 - キー 1 のエントリ 'groupA' が重複しています。一度に 1 行または 2 行を挿入しようとしている場合は問題ないようですが、現在 140 行を一度に挿入しようとしています。
ありがとう!