MySQL 自增主键插入问题

qt2013 2013-11-13 11:09:49
MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候就提示错误;是否可以让MySQL忽略SQL语句中的ID值只将其他列的值插入,让ID还是按照MySQL自增自己填呢?
...全文
9604 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SchopenhauerZhang 2016-07-09
  • 打赏
  • 举报
回复
主键自己默认就是不为空的。你insert into时把主键id设为null,你不觉得矛盾吗?
Crawl.W 2016-07-08
  • 打赏
  • 举报
回复
自增后直接插入两个值即可,数据插入时会自动跳过自增字段,如 insert into student values('liaojucheng','123456')
kris_cc 2015-08-18
  • 打赏
  • 举报
回复
引用 2 楼 JJYYyibanhua 的回复:
你在进行插入的时候可以把id的值设置为null或者0,这样子mysql都会自己做处理 或者你根本不插入这一个字段的数据! 如楼上 insert into tmptable(id,x,y) values(0或者null,x,y); insert into tmptable(x,y) values(x,y);
说的很对
liuxinran819 2013-11-15
  • 打赏
  • 举报
回复
如果是这样的话 可以在数据里为这些表建before insert的触发器 在插入之前把自增字段的值赋值为null 这样指定的值会被忽略 如果非要使用指定的值 可以先进行一次查询 如果已经存在相同的值了 再在业务逻辑方面考虑怎么处理
qt2013 2013-11-14
  • 打赏
  • 举报
回复
引用 1 楼 liuxinran819 的回复:
insert into tbl (id, name) values (null,'liu'),(null,"li"); 或者 insert into tbl (name) values ('liu'),("li");
有两个原因不能这样弄:第一 SQL语句已经固化在软件中了不能修改,第二 表的列太多要修改的话也太多
kobe8free 2013-11-13
  • 打赏
  • 举报
回复
你在进行插入的时候可以把id的值设置为null或者0,这样子mysql都会自己做处理 或者你根本不插入这一个字段的数据! 如楼上 insert into tmptable(id,x,y) values(0或者null,x,y); insert into tmptable(x,y) values(x,y);
liuxinran819 2013-11-13
  • 打赏
  • 举报
回复
insert into tbl (id, name) values (null,'liu'),(null,"li"); 或者 insert into tbl (name) values ('liu'),("li");
rucypli 2013-11-13
  • 打赏
  • 举报
回复
暂时没这功能

56,675

社区成员

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

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