[英]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.