#1062 - 键 'PRIMARY' 的重复条目“0”

#1062 - Duplicate entry '0' for key 'PRIMARY'

我在尝试向数据库中插入值时遇到 mysql table 问题。

我遵循了这个教程

http://sqllessons.com/categories.html

并像教程

中的table一样创建了table

table代码

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'

帮我解决一下。

声明该值是自动递增的并且不插入它。所以:

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)
);

然后:

INSERT INTO `mydb`.`categories` (`name`, `parentid`)
    VALUES ('groceries', NULL),
           ('snacks', NULL);

您想在字段中插入两次空值(0),您说的是PRIMARY KEY。定义的主键没有重复项。

您需要将主键指定为AUTO_INCREMENT并且不需要在查询

中插入'id'的值

每个主键都必须是唯一的。 您插入了主键为“0”的 2 行。 您应该插入一个 ID,而不是“ ”。

编辑:不好意思,ID 不是索引。