我在尝试在数据库中插入值时遇到mysql表的问题。
我遵循了本教程
http://sqllessons.com/categories.html
并创建表格,如教程
中的表格表格代码
create table categories
( id integer not null primary key
, name varchar(37) not null
, parentid integer null
, foreign key parentid_fk (parentid)
references categories (id)
);
错误 SQL查询:编辑编辑
INSERT INTO `mydb`.`categories` (
`id` ,
`name` ,
`parentid`
)
VALUES (
'', 'groceries', NULL
), (
'', 'snacks', NULL
)
MySQL said: Documentation
#1062 - Duplicate entry '0' for key 'PRIMARY'
帮我解决这个问题。
答案 0 :(得分:6)
声明值为自动递增,不要插入。所以:
bool allExist = !new[] { 1, 2, 3 }.Except(OfferPrioritie.Select(x => x.TypeId)).Any();
然后:
create table categories (
id integer not null auto_increment primary key,
name varchar(37) not null,
parentid integer null,
foreign key parentid_fk (parentid) references categories (id)
);
答案 1 :(得分:0)
你想要两次向字段插入一个空值(0),你说是PRIMARY KEY。定义中的主键没有重复。
答案 2 :(得分:0)
您需要将主键指定为 AUTO_INCREMENT ,而无需在查询中插入“id”值
答案 3 :(得分:0)
每个主键都必须是唯一的。 您插入了2行,主键为“0”。 而不是''你应该插入一个ID。
编辑:我不好,ID不是索引。