我实际上要做的是,插入一行INSERT INTO table (col2, col3, <...>) VALUES (col1, $something, <...>).
col1是一个auto_increment id列,基本上我想在INSERT语句中将该值复制到col2,在一个查询中。这可能吗?
答案 0 :(得分:0)
如果我理解正确,那么在同一INSERT
语句中,您尝试将生成的AUTO_INCREMENT
ID插入另一列。
嗯,这不可能是IMO;如果您这样做,则仍未生成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周围使用事务块来确保两个操作都成功完成。