MySQL中是否存在重复密钥冲突?
嗯,是的,我喜欢。我收到以下错误:MySQL中是否存在重复密钥冲突?,mysql,Mysql,嗯,是的,我喜欢。我收到以下错误: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-684-Answer' for key 'user_id' (SQL: insert into `votes` (`votable_id`, `votable_type`, `user_id`, `updated_at`, `created_at`) values (684, Answer, 1, 2016-03-1
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-684-Answer' for key 'user_id' (SQL: insert into `votes` (`votable_id`, `votable_type`, `user_id`, `updated_at`, `created_at`) values (684, Answer, 1, 2016-03-17 12:16:53, 2016-03-17 12:16:53))
这表明我对user_id列有唯一的约束?观察投票结果;我不确定这是否表明ot不是。但它不应该这样做,一个用户应该能够多次投票:
mysql> describe votes;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | NO | MUL | NULL | |
| votable_id | int(11) | NO | | NULL | |
| votable_type | varchar(255) | NO | | NULL | |
| value | int(11) | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
| deleted_at | datetime | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
mysql> show indexes from votes where column_name = 'user_id';
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| votes | 0 | user_id | 1 | user_id | A | 51 | NULL | NULL | | BTREE | | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
以上是否表示设置了唯一属性?我正在查看迁移文件,看不到分配了UNIQUE属性的位置。可能有人手动输入。这表明您的表中有一个索引用户id 您可以使用以下代码查看将列出所有索引的索引:
SHOW INDEX FROM votes;
如果它不能解决您的问题,请删除唯一索引并重新创建它。这表明您的表中有索引用户id 您可以使用以下代码查看将列出所有索引的索引:
SHOW INDEX FROM votes;
如果它不能解决您的问题,请删除唯一索引并重新创建它。非唯一=0。这意味着它不能包含重复项。请参阅文档。非唯一=0。这意味着它不能包含重复项。见文件