select into from 和 insert into select 的区别和用法及 SQL SELECT INTO 中Undeclared variable错误解决办法

    今天试了一下数据表中的数据备份到另一个空的数据表,然后使用了SQL SELECT INTO语句,然后提示Undeclared variable......错误,现在在这里做下总结并给出解决办法。

应用程序在开发、测试过程中,经常会遇到需要表复制的情况,比如将一个表table1的数据的部分字段或全部字段复制到表table2中,这时候就是 SELECT INTO 或者 INSERT INTO SELECT 发挥奇妙无穷的作用的时候了。至于这两种方法的区别和用法,就请慢慢往下看吧!
 
(1)INSERT INTO SELECT语句
 
语句形式为: Insert into Table2(field1,field2,,field3,...) select key1,key2,,key3,... from Table1 
 
这种用法要求被插入的表Table2必须存在,由于被插入的表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入我们自定义的常量。

(2)SELECT INTO FROM语句
 
语句形式为: SELECT key1, key2, key3 into Table2 from Table1 
 
这种用法要求被插入的表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

 

  然而今天在使用 SELECT INTO FROM 备份mysql数据表的时候,运行相关 sql 语句的时候却一直返回 [Err] 1327 - Undeclared variable: ...... 这种错误,实在不解,经过查询相关资料才知道,原来 mysql 数据库是不支持 SELECT INTO FROM 这种语句的,但是经过研究是可以通过另外一种变通的方法解决这个问题的,下面就来说说解决这个错误的办法吧!

  进过搜索相关资料以及实验结果证实,可以使用

1 Create table Table2 (Select * from Table1);

  这种语句代替

1 SELECT key1, key2, key3 into Table2 from Table1;

 

posted @ 2015-07-29 16:25  todaytoday  阅读(6765)  评论(0编辑  收藏  举报