繁体   English   中英

在INSERT中使用auto_increment值

[英]Use auto_increment value in INSERT

我实际上想做的是,用INSERT INTO table (col2, col3, <...>) VALUES (col1, $something, <...>).插入一行INSERT INTO table (col2, col3, <...>) VALUES (col1, $something, <...>).

col1是一个auto_increment id列,基本上我想在一个查询中将该值复制到INSERT语句上的col2。 这可能吗?

如果我理解正确,则在同一INSERT语句中,您尝试将生成的AUTO_INCREMENT ID插入另一列。

嗯,这是海事组织不可能的。 如果您这样做的原因,仍然不会生成AUTO_INCREMENT ID。

一种解决方案是使用存储过程并一起执行INSERT+UPDATE ,如下所示(示例)

create procedure usp_dowork(parameter list ...)
as
begin
INSERT INTO table (col2, col3, <...>) VALUES (NULL, $something, <...>);
update table set col2 = LAST_INSERT_ID()
where col1 = LAST_INSERT_ID();
end

您应该考虑在DML周围使用事务块,以确保两个操作均成功完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM