mysql中 auto_increment 怎样实现自增??

每只蚂蚁都有 2015-08-13 10:34:20
/*先建一个example6 表, 定义ID实现自增*/

CREATE TABLE example6 (
id INT PRIMARY KEY AUTO_INCREMENT ,
stu_id INT NOT NULL,
name VARCHAR(20) NOT NULL
)
/*插入一条数据*/
insert into example6values (1,002,'黎明');
/*ok 可以实现*/
/*再插一条数据失败!!!!!*/
insert into example6 values (2,002,'黎明'); 或者 insert into example6 values (,002,'黎明');
为什么?具体应该怎么弄才能实现自增,求指教!给出最简单的代码
...全文
264 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
九月茅桃 2015-09-10
  • 打赏
  • 举报
回复

范列sql:
CREATE TABLE example6 (
    id INT PRIMARY KEY AUTO_INCREMENT ,
    stu_id INT NOT NULL,
    name VARCHAR(20) NOT NULL
);
insert into example6 values (1,002,'黎明');
 insert into example6 values (2,003,'黎明2');
select * from example6;



执行过程如下所示:

mysql> CREATE TABLE example6 (
    ->     id INT PRIMARY KEY AUTO_INCREMENT ,
    ->     stu_id INT NOT NULL,
    ->     name VARCHAR(20) NOT NULL
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> 
mysql>  insert into example6 values (1,002,'黎明');
Query OK, 1 row affected (0.02 sec)

mysql> select * from example6;
+----+--------+--------+
| id | stu_id | name   |
+----+--------+--------+
|  1 |      2 | 黎明   |
+----+--------+--------+
1 row in set (0.00 sec)

mysql>  insert into example6 values (2,003,'黎明2');
Query OK, 1 row affected (0.01 sec)

mysql> select * from example6;
+----+--------+---------+
| id | stu_id | name    |
+----+--------+---------+
|  1 |      2 | 黎明    |
|  2 |      3 | 黎明2   |
+----+--------+---------+
2 rows in set (0.00 sec)

mysql> 
九月茅桃 2015-09-10
  • 打赏
  • 举报
回复
可以的,楼主的错误信息是?
rick-he 2015-09-06
  • 打赏
  • 举报
回复
上面的都不行,那你应该还有其他的索引,导致相同的不能插入
Ray_Zhang 2015-09-06
  • 打赏
  • 举报
回复
SHOW TABLE STATUS LIKE '表名'; 看一下是不是auto_increment的值有问题
码无边 2015-08-31
  • 打赏
  • 举报
回复
贴出你的表结构看下
pony520 2015-08-30
  • 打赏
  • 举报
回复
自增字段不用管的,系统自己添加的
道玄希言 2015-08-14
  • 打赏
  • 举报
回复
引用 6 楼 MeiZhiMaYiDuYou 的回复:
[quote=引用 4 楼 yupeigu 的回复:] mysql的自增列稍微有点不同,虽然你定义了自增列,但是你也可以插入数据, 所以这个能插入; insert into example6 values (1,002,'黎明'); 这个应该也是可以插入的 insert into example6 values (2,002,'黎明'); 而insert into example6 values (,002,'黎明'); 第一列没有写值,所以就会报错,改为: insert into example6(id,stu_id,name) values (002,'黎明');
也不行啊![/quote] 自增字段的ID不要写出来啊. insert into example6(stu_id, name) values (002,'黎明'); insert into 插入, 列出的表字段 跟 values 后的值是一一对应的. 如果有自增字段, 自增字段不用你去管他, 这时不能简写, 需要将除掉自增字段外的其他你需要插入的字段名都罗列出来 values 值也需要跟你列出的字段名对应
shane_____ 2015-08-14
  • 打赏
  • 举报
回复
把错误信息贴出来啊!
rsc110 2015-08-14
  • 打赏
  • 举报
回复
insert into example6(stu_id,name) values (002,'黎明'); 这些问题在搜索引擎上都很容易找到的诶,为何要提问呢?
ACMAIN_CHM 2015-08-14
  • 打赏
  • 举报
回复
insert into example6 values (null,002,'黎明')
每只蚂蚁都有 2015-08-14
  • 打赏
  • 举报
回复
引用 4 楼 yupeigu 的回复:
mysql的自增列稍微有点不同,虽然你定义了自增列,但是你也可以插入数据, 所以这个能插入; insert into example6 values (1,002,'黎明'); 这个应该也是可以插入的 insert into example6 values (2,002,'黎明'); 而insert into example6 values (,002,'黎明'); 第一列没有写值,所以就会报错,改为: insert into example6(id,stu_id,name) values (002,'黎明');
也不行啊!
每只蚂蚁都有 2015-08-14
  • 打赏
  • 举报
回复
引用 3 楼 zhu19774279 的回复:
1楼+1 自增字段必须要用 insert into tb(xxx,xxx) values(xxx,xxx)这种格式,不能偷懒不写字段
试过了,不行啊
  • 打赏
  • 举报
回复
mysql的自增列稍微有点不同,虽然你定义了自增列,但是你也可以插入数据, 所以这个能插入; insert into example6 values (1,002,'黎明'); 这个应该也是可以插入的 insert into example6 values (2,002,'黎明'); 而insert into example6 values (,002,'黎明'); 第一列没有写值,所以就会报错,改为: insert into example6(id,stu_id,name) values (002,'黎明');
zhu19774279 2015-08-14
  • 打赏
  • 举报
回复
1楼+1 自增字段必须要用 insert into tb(xxx,xxx) values(xxx,xxx)这种格式,不能偷懒不写字段
迷途的书童 2015-08-14
  • 打赏
  • 举报
回复
自增值不用插入,它会自动增加!

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧