这很简单,我只是以这种方式出现
INSERT INTO TABLE1 (col2,col3,col4) VALUES('a','b',current_insert_id());
存在last_insert_id()的实现,但这仅在已创建行的情况下有用。
我打算做的是将当前插入的ID用作另一个字段的值。我打算仅通过一个查询来实现这一点。
尝试:
INSERT INTO TABLE1 (col2, col3, col4) VALUES('a','b',last_insert_id());
在最后一个字段上给我0
INSERT INTO TABLE1 (col2, col3, col4) VALUES('a','b','dummy_value');
UPDATE TABLE1 SET col4=LAST_INSERT_ID() WHERE ID=LAST_INSERT_ID();
但这使用2个查询。我打算只在一个查询中完成所有操作,如何完成?
答案 0 :(得分:0)
一种方法是:
INSERT INTO TABLE1
(col2,col3,col4)
VALUES
(
'a',
'b',
(
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "YOUR_DB_NAME"
AND TABLE_NAME = "TABLE1"
)
);
但是不要在生产中这样做。这不是很好:)