编辑:我是木偶。因此,在仔细搜索了我试图插入的行之后,我的代码中有一个错误,这意味着正在插入空字符串。因为这种情况不止一次发生,所以 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 INTO food(user, group, completed) VALUES ('user1', 'groupA', '0'),('user2', 'groupB', '0'),('user3', 'groupA', '0');
所以用户和组的组合绝对是唯一的。那么为什么它会抱怨我试图插入一个非唯一键而失败呢?
我得到的错误是:#1062 - 键 1 的重复条目 'groupA'。如果我尝试一次插入一两行似乎没问题,但我目前正尝试一次性插入 140 行。
谢谢!