【发布时间】:2023-03-07 17:41:01
【问题描述】:
我有一个有效的INSERT INTO SELECT 查询,它根据选择的结果将记录插入到新表中。简单的。
INSERT INTO my_table (a, b, c)
SELECT a, b, c FROM my_table
WHERE x=y;
如何从该查询的INSERT 部分获取新创建的主键 ID,以便我可以使用它们来更新另一个表? (主键是唯一的唯一引用)
我读到INSERT INTO SELECT 只支持每个查询插入一个表,所以这是不可能的。如何实现(使用 MyISAM 引擎)?
【问题讨论】:
-
创建一个存储过程并使用循环单独插入记录,以便轻松获取最后插入的id。存储此 ID 并返回
-
是的,我想这是显而易见的解决方案。但如果可能的话,我宁愿牺牲那个解决方案来换取性能和更简洁的代码。
标签: mysql