mysql 定义自增
The database returned no natively generated identity value问题
alter table user_table MODIFY user_id INT UNSIGNED AUTO_INCREMENT;
问题来了,为什么我们要对我们的数据表作自增操作?
因为当我们对表设置为自增之后,我们以后若是想在表中插入数据的话,比如这个表是这样的:
userId | userName | password | md5 |
INTEGER | VARCHAR(20) | VARCHAR(20) | VARCHAR(200) |
1 | admin | 111 | NULL |
2 | jia_n | wisdom | NULL |
3 | yinq | 111 | aY1RoZ2KEhzlgUmde3AWaA== |
然后我们执行以下命令:
alter table t_user MODIFY userId INT UNSIGNED AUTO_INCREMENT
之后,我们的表就变成如下:
userId | userName | password | md5 |
INTEGER UNSIGNED | VARCHAR(20) | VARCHAR(20) | VARCHAR(200) |
1 | admin | 111 | NULL |
2 | jia_n | wisdom | NULL |
3 | yinq | 111 | aY1RoZ2KEhzlgUmde3AWaA== |
然后,当我们任意执行insert语句,例如:
INSERT INTO t_user ( userName, password, md5) VALUES ('panhao', '111', 'aY1RoZ2KEhzlgUmde3AWaA==');
显然,里面是不包含主键的,运行如下:
userId | userName | password | md5 |
INTEGER UNSIGNED | VARCHAR(20) | VARCHAR(20) | VARCHAR(200) |
1 | admin | 111 | NULL |
2 | jia_n | wisdom | NULL |
3 | yinq | 111 | aY1RoZ2KEhzlgUmde3AWaA== |
4 | panhao | 111 | aY1RoZ2KEhzlgUmde3AWaA== |
而如果我们想取消主键,则只需要执行以下命令:
alter table t_user MODIFY userId INTEGER ;
即可