mysql重复条目' x'对于key' unique_id'

时间:2014-08-14 10:07:53

标签: mysql

我在mysql表中创建了大约500000个唯一键。

表格为空。 我已将索引设置为1 alter table my_table auto_increment = 1;

字段unique_idvarcharunique

当我启动脚本来创建密钥时,我收到以下错误消息。

例如

写作的关键是4947E4

消息是Duplicate entry '4947' for key 'unique_id'

写作的关键是676E97

消息是Duplicate entry '676' for key 'unique_id'

等等。看起来mysql挑选出密钥的整数值并检查它们是否存在。

是错误还是功能?

请帮忙

3 个答案:

答案 0 :(得分:1)

仔细检查unique_id字段的类型,它的行为类似于INTEGER。

答案 1 :(得分:0)

1-使用DEFAULT NULL时,您的查询有一些技巧。然后你说unique_id。因此,如果您使用DEFAULT值插入两个值,它们将为NULL并且它们是重复的。

2-您必须检查是否插入字符串4947E4。

3-尝试使用带有id的unique_id,因为id是自动增量,永远不会重复。

    UNIQUE KEY `unique_index` (id , unique_id)

答案 2 :(得分:0)

不知道为什么,但似乎php类型的功能很奇怪。我在mysql语句被触发之前已经注释掉了这个部分。现在它可以工作

   `foreach ($data as $key => $value)
    {

        if (is_string($value))
        {
            $data[$key] = self::$_db->real_escape_string($value);
        }
        if (is_numeric($value))
        {
            $data[$key] = (int)$value;
        }
    }` 

is_string应该是真的,因为例如676E97是一个字符串。或不?