我得到了查询:
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'
我不知道为什么这个%$#@ $ ^不起作用。有人可以帮忙吗?
答案 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)
或
现在转到下面的列属性向下滚动并找到身份规范,展开它,你会发现是身份让它成为是的。现在选择 Identity Increment ,在它下面给出你想要增加的值。
答案 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);