Mysql 执行查询后,为什么会给出表不存在错误?

Mysql 执行查询后,为什么会给出表不存在错误?,mysql,mysql-management,Mysql,Mysql Management,我正在尝试执行以下查询: Insert into pligg_links_temp select * from pligg_links WHERE link_id > 0 and link_id < 10000; 该表不存在,但应在此过程中创建,还是我错了?查询应为 CREATE TABLE pligg_links_temp AS SELECT * FROM pligg_links WHERE link_id > 0 and link_id < 10000; 不,

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

Insert into pligg_links_temp
select * 
from pligg_links 
WHERE link_id > 0 and link_id < 10000;
该表不存在,但应在此过程中创建,还是我错了?

查询应为

CREATE TABLE pligg_links_temp AS SELECT * FROM pligg_links WHERE link_id > 0 and link_id < 10000;

不,它不会为你创造它。
显然,表必须存在。

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

通过选择将插入到现有表中。 通过选择创建并插入新表(从 选定的表字段结构。 您的错误stacktrace表明表pligg\U links\U temp不存在。 那么,创建和插入表数据的语句不正确

要将记录从现有表复制到新表,需要使用语法

使用以下示例:

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

第一个选项:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在第行的“从pligg_链接中选择*(其中链接id>0,链接id<10000)”附近使用的正确语法1@Chriswede不,要么用作,要么不使用。方括号用于可选的符号。这是不言自明的。创建表pligg\u links\u temp[]从链接id>0且链接id<10000的pligg\u链接中选择*:1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在“[]附近使用的正确语法,从第1行的链接id>0和链接id<10000的pligg_链接中选择*,从链接id>0和链接id<10000的pligg_链接中选择*;很好,很抱歉,现在我明白了,很抱歉
create table pligg_links_temp -- as /* as is optional */  
  select * from pligg_links WHERE link_id > 0 and link_id < 10000;
insert into pligg_links_temp  
  select * from pligg_links WHERE link_id > 0 and link_id < 10000;