首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动增量问题mysql

问自动增量问题mysql
EN

Stack Overflow用户
提问于 2010-11-01 02:21:29
回答 3查看 900关注 0票数 0

我一直在找这个,但到目前为止还没找到。我在mysql中有两个表,它们被配置为父子表。父表有一个auto_increment类型的字段,子表有一个引用父表中自动增量列的字段。当我插入到父表中时,一切都会正常进行。但是,当我在子表上执行insert时,它会给我一个异常,说明在父表中没有引用列值。问题是,如何在INSERT之后刷新自动增量id的值,以便孩子在执行其更新(或在本例中为insert )之前具有对该值的引用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-01 02:53:24

在插入新记录时,始终先插入到父记录。获取auto_increment值(使用mysql中的LAST_INSERT_ID() ),并在子表中使用该值。从一开始你就可以开始一个事务处理,所以如果在插入到子级时出错,你可以回滚。

票数 1
EN

Stack Overflow用户

发布于 2010-11-01 02:30:40

您的问题有点不清楚,但我假设您在子表中引用父表中的auto_increment字段的列上有外键约束,对吗?

在这种情况下,您需要在子表的FK列中为子表上的每次更新或插入设置一个有效值。如果你这样做,你仍然会得到一个错误吗?

问题是,如何在插入之后刷新自动增量id的值,以便子对象在执行更新(或在本例中为INSERT )之前具有对该值的引用。

这对我来说没有任何意义。刷新自动增量id的值是什么意思?

通常,在插入到父表中之后,您将检索生成的API值(如何执行此操作取决于您使用的auto_increment,但所有数据库API都可以执行此操作),将此值设置为子表中的适当列,然后插入/更新子表。

票数 0
EN

Stack Overflow用户

发布于 2010-12-09 07:19:42

这听起来像是您想要在向子表中插入新记录的同时向父表中插入新记录。尝试使用存储过程执行此操作?这样,您就可以插入到父表中,将标识符存储在一个变量中,然后将该变量保存到子表中新记录的外键字段中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4064433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档