【发布时间】:2016-02-10 06:35:03
【问题描述】:
我最近开始使用 MySQL 进行学习工作,现在面临以下问题:
我的前任创建了一个如下结构的文本挖掘表:
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| TokenId | int(11) | NO | PRI | 0 | |
| Value | varchar(255) | YES | | NULL | |
| Frequency | int(11) | YES | | NULL | |
| PMID | int(11) | YES | MUL | NULL | |
+------------+--------------+------+-----+---------+-------+
在重组的背景下,我添加了以下列:
+------------+--------------+------+-----+---------+-------+
| NewTokenId | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
如果我现在运行查询:
insert into TitleToken(NewTokenId) select t.TokenId from Token as t, TitleToken as tt where t.Value = tt.Value
甚至是查询:
insert into TitleToken(NewTokenId) values(1);
我得到以下输出:
错误 1062 (23000):键 'PRIMARY' 的重复条目 '0'
正如我所说,我对(动手)*SQL 比较陌生,感觉像是一个愚蠢的错误,但由于列 NewTokenId 不是主键,不是唯一的,甚至 Null 是 YES,我想我会基本上可以插入我想要的任何东西。
任何提示将不胜感激...在此先感谢:)
【问题讨论】:
-
问题在于
TokenId。应该是自动递增 -
请仔细阅读错误信息。它不抱怨
NewTokenId,它抱怨主键(即TokenId)。
标签: mysql