使用临时表的字段进行插入

时间:2013-02-26 18:21:40

标签: mysql temp-tables

我想将临时表中的所有字段移动到另一个表中,但我的声明似乎不起作用。在生成要在insert语句中使用的临时表之后,如何选择一些字段。

这是我生成临时表的代码,它可以工作:

> CREATE TEMPORARY TABLE table2 AS(SELECT ca.catref AS cx_ref, c.name AS code_name, ca.title, ca.keywords, ca.cat1, ca.cat2, ca.cat3, ca.active, ca.moderated,
FROM table ca
JOIN anothertable c ON c.prefix = LEFT( ca.catref, 3 ))   

这是我直接调用的代码,它引用临时表,但似乎不起作用...

> INSERT INTO mytable (catref, cartoonist, title, keywords, cat1, cat2, cat3, active, moderated, source_db)
SELECT catref, code_name, title, keywords, cat1, cat2, cat3, active, moderated, source_db from table2

1 个答案:

答案 0 :(得分:1)

第一个查询中有错误(创建临时),在ca.moderate之后,删除昏迷... ca.moderated,

CREATE TEMPORARY TABLE table2 AS(
SELECT ca.catref AS cx_ref, c.name AS code_name, 
ca.title, ca.keywords, ca.cat1, ca.cat2, ca.cat3,
ca.active, ca.moderated
FROM table ca
JOIN anothertable c ON c.prefix = LEFT( ca.catref, 3 )) 

插入试试这个:

INSERT INTO `mytable` 
(catref, cartoonist, title, keywords, cat1, cat2, cat3, active, moderated, source_db) 
SELECT * 
from `table2`