首页 新闻 会员 周边

MySQL函数中创建临时表

0
悬赏园豆:10 [已解决问题] 解决于 2015-05-29 16:45

我们都知道,在MySQL创建函数的时候,是不能返回table类型的数据的。

我有几个疑问:

1、在function中我首先创建一个临时表:

create temporary table table_tmp (id int,name varchar(20));

然后再对table_tmp进行赋值:

select id ,name into table_tmp from user;

这里会报错,说table_tmp没有声明。

2、既然上面说table_tmp没有声明,那么我首先声明一个table:

declare table_tmp table(id int,name varchar(20));

这里也会报错,说不能这样声明变量,那么是不是在function中不能声明表类型的变量呢?

现在唯一的解决办法就是:

create temporary table table_tmp select id,name from user;//但是这里不能添加自己的列

有没有人能帮我解决下:

①MySQL的函数中怎么声明一个table;

②在MySQL的函数中怎么创建临时表;

谢谢!

mcfer的主页 mcfer | 初学一级 | 园豆:144
提问于:2015-05-29 13:21
< >
分享
最佳答案
0

试试下面的方法:

create temporary table table_tmp (id int,name varchar(20));
insert into table_tmp (id, name) select id,name from user; 
收获园豆:10
dudu | 高人七级 |园豆:30994 | 2015-05-29 15:08

谢谢你!

在MySQL中是不是没有这种写法呢?

select id,name into table_tmp from user;

 

mcfer | 园豆:144 (初学一级) | 2015-05-29 16:29

@mcfer: MySQL中可以这样:

CREATE TABLE new_tbl SELECT * FROM orig_tbl;
dudu | 园豆:30994 (高人七级) | 2015-05-29 16:43

@dudu: 好的,谢谢!

mcfer | 园豆:144 (初学一级) | 2015-05-29 16:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册