MySQL 仅从 SELECT 创建具有自动增量的临时表
Posted
技术标签:
【中文标题】MySQL 仅从 SELECT 创建具有自动增量的临时表【英文标题】:MySQL create temporary table with autoincrement from SELECT only 【发布时间】:2015-01-03 11:44:37 【问题描述】:使用 mysql 我知道可以从 SELECT 创建一个临时表: Create a temporary table in a SELECT statement without a separate CREATE TABLE
我也知道可以在临时表中创建自动增量: Auto Increment in Temporary Table
我想同时做这两个:从 SELECT 语句创建一个临时表,我希望临时表有一个自动增量列。
有可能吗?
【问题讨论】:
谢谢,但我必须从 select 本身创建临时表(之前没有创建临时表) 【参考方案1】:如果要创建带有行号列的临时表,请使用变量:
create temporary table temp as
select (@rn := @rn + 1) as seqnum, t.*
from t cross join
(select @rn := 0) vars;
对于新的insert
s,这不会自动递增。如果需要,您需要更改表定义。
【讨论】:
以上是关于MySQL 仅从 SELECT 创建具有自动增量的临时表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MySQL 中对 GROUP BY 结果的 SELECT INTO 使用自动增量?