在插入时将自动增量值复制到另一列?

Posted

技术标签:

【中文标题】在插入时将自动增量值复制到另一列?【英文标题】:Copy autoincrement value to another column on insert? 【发布时间】:2012-11-13 20:17:25 【问题描述】:

基本上我有一个版本产品的表格,

所以它有两列感兴趣,id | product_id

idautoincrement 列,product_id 只是 int

第一次创建产品时,product_id 来自 id, 编辑产品时,我们复制了该行,因此product_id 相同,但 id 不同。所以当我们第一次创建产品时,我们会做两个查询,

插入,然后update table whatever set product_id = id where id = the insert id

这可行,但我想知道是否有办法在一个查询中做到这一点?

请注意,我们只能访问插入、更新、删除。没有触发器或存储过程。

【问题讨论】:

【参考方案1】:

使用LAST_INSERT_ID()函数:

update table whatever set
product_id = id
where id = last_insert_id()

【讨论】:

这基本上就是我们正在做的事情,但我想知道是否有办法在插入过程中链接这两个值? 您可以查询目录表以查找下一个增量值。我忘记是哪一个了 这不是问题的答案【参考方案2】:

这是单个查询:

insert into whatever 
set product_id = last_insert_id() + 1;

【讨论】:

如果您有多个要插入行的表,则无法保证这会起作用。

以上是关于在插入时将自动增量值复制到另一列?的主要内容,如果未能解决你的问题,请参考以下文章