MySQL替换为并获取最后一个插入ID

MySQL替换为并获取最后一个插入ID,mysql,sql,Mysql,Sql,在MySQL中,REPLACE INTO查询是否可以使用最后一个\u INSERT\u ID函数 本质上,我必须插入到一个表中,只在它不存在的地方插入,但无论哪种方式,都必须插入到第二个表中,并使用第一个表的外键约束 所以我 REPLACE INTO TABLE1(NAME) VALUES('unique'); SET @table1_id = LAST_INSERT_ID(); INSERT INTO TABLE2(TABLE1_ID, VALUE) VALUES(@table1_id, 'T

在MySQL中,REPLACE INTO查询是否可以使用最后一个\u INSERT\u ID函数

本质上,我必须插入到一个表中,只在它不存在的地方插入,但无论哪种方式,都必须插入到第二个表中,并使用第一个表的外键约束

所以我

REPLACE INTO TABLE1(NAME) VALUES('unique');
SET @table1_id = LAST_INSERT_ID();
INSERT INTO TABLE2(TABLE1_ID, VALUE) VALUES(@table1_id, 'Test Value');

该功能在插入和更新时都能正常工作吗

是,
REPLACE INTO
查询影响
LAST\u INSERT\u ID()
函数的结果

国家:

REPLACE
的工作原理与
INSERT
完全相同,不同之处在于,如果表中的旧行与主键或唯一索引的新行具有相同的值,则在插入新行之前会删除旧行

这意味着如果
INSERT
影响
LAST\u INSERT\u ID()

我已经用MySQL 8对其进行了测试