如何使用当前插入ID的编号作为mysql中另一列的字段值?

时间:2018-11-02 03:04:47

标签: mysql

这很简单,我只是以这种方式出现

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个查询。我打算只在一个查询中完成所有操作,如何完成?

1 个答案:

答案 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"
      )
    );

但是不要在生产中这样做。这不是很好:)