为了账号安全,请及时绑定邮箱和手机立即绑定

添加了主键约束,但是id有了默认值0,添加第二条记录的时候就会出现这样的错误,怎么回事啊

mysql> show columns from user2;

+----------+----------------------+------+-----+---------+-------+

| Field    | Type                 | Null | Key | Default | Extra |

+----------+----------------------+------+-----+---------+-------+

| id       | smallint(5) unsigned | NO   | PRI | 0       |       |

| username | varchar(20)          | NO   |     | NULL    |       |

| pid      | smallint(5) unsigned | YES  | MUL | NULL    |       |

+----------+----------------------+------+-----+---------+-------+

3 rows in set (0.09 sec)

mysql> insert user2(username,pid) value('Rose',2);

ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'



正在回答

3 回答

你这个是 如果id不写值进去,就直接是默认值 0,而主键的值是不允许出现重复的,看报错信息就知道了,Duplicate是重复的意思。

id smallint unsigned primary key auto_increment;添加自动编号直接写在列定义里就行了

0 回复 有任何疑惑可以回复我~

没用 auto_increment ?

0 回复 有任何疑惑可以回复我~
#1

Mr_listening 提问者

这个是添加主键约束,不知道在哪写auto_increment,老师讲的时候也没写,我刚看它的id那也有默认值0
2016-08-02 回复 有任何疑惑可以回复我~

把主键的默认值去掉

0 回复 有任何疑惑可以回复我~
#1

qq_梦中虔诚_03693510

没有输入数据的都会查看默认值,有默认值就会添加默认值
2016-08-02 回复 有任何疑惑可以回复我~
#2

Mr_listening 提问者 回复 qq_梦中虔诚_03693510

删除默认值的话 还是没有像以前那样主键约束的Auto_increment,这个是起始值为1,每次递增一啊
2016-08-02 回复 有任何疑惑可以回复我~
#3

Mr_listening 提问者 回复 qq_梦中虔诚_03693510

删除默认值的话 还是没有像以前那样主键约束的Auto_increment,这个是起始值为1,每次递增一啊
2016-08-02 回复 有任何疑惑可以回复我~
#4

Mr_listening 提问者 回复 qq_梦中虔诚_03693510

我试了,去掉默认值的话id就都成了NULL了
2016-08-02 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

添加了主键约束,但是id有了默认值0,添加第二条记录的时候就会出现这样的错误,怎么回事啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信