【问题标题】: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}

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

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

【问题讨论】:

    标签: mysql insert auto-increment


    【解决方案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;
    

    【讨论】:

    • 如果您有多个要插入行的表,则无法保证这会起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 2018-02-21
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多