SQL错误:重复输入值' 0'主

时间:2014-05-19 10:32:22

标签: mysql sql

我得到了查询:

    INSERT INTO peekquick.file_storage 
            (file_id, 
             size, 
             content, 
             file_desc, 
             files_set_id, 
             content_type, 
             file_name, 
             answer_id) 
VALUES      (file_id = 62745251829, 
             size = 1295585, 
             content = '', 
             file_desc = '', 
             files_set_id = '', 
             content_type = 'image/jpeg', 
             file_name = 'witryna.jpeg', 
             answer_id = 176458); 

我收到了错误:

Duplicate entry '0' for key 'PRIMARY'

我不知道为什么这个%$#@ $ ^不起作用。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

  

确保将设置为PRIMARY KEY的列设置为AUTO_INCREMENT

INT 有一个maximum signed value of 2147483647。任何大于该数字的数字都将被截断为该值。

在Sql Server中定义像这样的列......

   FILE_ID [PrimaryID] [int] IDENTITY(1,1) NOT NULL

然后你可以添加一个约束,使其成为主键。

或像这样改变表格

   ALTER TABLE MyTable
   ADD MytableID int NOT NULL IDENTITY (1,1),
   ADD CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)

enter image description here

现在转到下面的列属性向下滚动并找到身份规范,展开它,你会发现是身份让它成为的。现在选择 Identity Increment ,在它下面给出你想要增加的值。

enter image description hereMSDN Documentation

答案 1 :(得分:0)

在VALUES之后删除FILE_ID = ....像这样:

INSERT INTO peekquick.FILE_STORAGE (FILE_ID, SIZE, CONTENT, FILE_DESC, FILES_SET_ID, CONTENT_TYPE, FILE_NAME, ANSWER_ID)
  VALUES (62745251829, 1295585, '', '', '', 'image/jpeg', 'witryna.jpeg', 176458); 

确保正确插入主键,如果不手动生成,则将其设为自动增量。此表中可能还有一个UNIQUE列,请确保您在此列中插入的值是唯一的。

答案 2 :(得分:0)

语法有点不正统,它有助于做到这一点吗?

INSERT INTO peekquick.FILE_STORAGE 
    (FILE_ID, SIZE, CONTENT, FILE_DESC, FILES_SET_ID, CONTENT_TYPE, FILE_NAME, ANSWER_ID)
VALUES 
    (62745251829, 1295585, '', '', '', 'image/jpeg', 'witryna.jpeg', 176458);