-1

我正在尝试执行以下查询:

Insert into pligg_links_temp
select * 
from pligg_links 
WHERE link_id > 0 and link_id < 10000;

但我收到此错误:

#1146 - Table 'chris123_pligg.pligg_links_temp' doesn't exist   when trying to execute query to create table

该表不存在,但应该在此过程中创建,还是我错了?

4

3 回答 3

2

查询应该是

CREATE TABLE pligg_links_temp AS SELECT * FROM pligg_links WHERE link_id > 0 and link_id < 10000;
于 2012-06-19T10:43:59.010 回答
1

可以通过两种方式将记录从一个表复制到另一个表。

  1. 通过选择插入到现有表中。
  2. 通过选择创建并插入到从选定表字段结构创建的新表中。

您的错误堆栈跟踪表明该表pligg_links_temp不存在。
那么你对create and insert表数据的陈述是不正确的。

要将记录从现有表复制到新表,您需要使用CREATE TABLE ... SELECT Syntax语法。

使用以下示例:

create table pligg_links_temp -- as /* as is optional */  
  select * from pligg_links WHERE link_id > 0 and link_id < 10000;

如果目标表已经存在,可以使用INSERT ... SELECT Syntax语句复制记录。

insert into pligg_links_temp  
  select * from pligg_links WHERE link_id > 0 and link_id < 10000;
于 2012-06-19T11:07:39.213 回答
0

不,它不会为您创建它。 http://dev.mysql.com/doc/refman/5.5/en/insert.html明确表示该表必须存在。

于 2012-06-19T10:44:38.150 回答