基本上,我有以下SQL查询,该查询将三个值插入指定的三列中。
"INSERT INTO Equipment (field1, field2, field3)
VALUES ('TestInsertF1', 'TestInsertF2', 'TestInsertF3')";
该表还具有一个自动递增ID列,该列在每次执行上述查询时都会创建一个新ID。
如何将值插入到field4
中,其中该值被硬编码为"NUM: (The auto-incremented ID )"
答案 0 :(得分:0)
我正在一次交易中执行此操作,可能最简单的方法是在插入后更新 。在MySQL中,这看起来像:
INSERT INTO Equipment (field1, field2, field3)
VALUES ('TestInsertF1', 'TestInsertF2', 'TestInsertF3');
UPDATE Equipment
SET field4 = CONCAT('NUM: ', <id>)
ORDER BY <id> DESC
LIMIT 1;
当然,如果存在并发事务,这可能不起作用。为此,您需要捕获插入次数最多的ID:
INSERT INTO Equipment (field1, field2, field3)
VALUES ('TestInsertF1', 'TestInsertF2', 'TestInsertF3');
SET @id = LAST_INSERT_ID();
UPDATE Equipment
SET field4 = CONCAT('NUM: ', <id>)
WHERE <id> = @id;