52

当我尝试执行以下查询时:

SELECT id_subscriber
  INTO newsletter_to_send
  FROM subscribers 

我收到一个错误:

#1327 - 未声明的变量:newsletter_to_send

该查询有什么问题?

4

11 回答 11

53
INSERT ... SELECT

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

INSERT INTO newsletter_to_send
SELECT id_subscriber FROM subscribers 

PS:你确定不需要inWHERE子句吗?

于 2010-06-01T12:21:32.673 回答
25

MySQL 不支持该SELECT ... INTO ...语法。

您必须使用INSERT INTO ... SELECT ..语法来完成那里。

在这里阅读更多.. http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

于 2010-06-01T12:23:01.140 回答
20

我认为您可以按照我给定的方式进行操作,并希望您能够解决问题。

首先使用此 sql 命令创建一个要备份的新表

CREATE TABLE destination_table_name LIKE source_table_name;

之后,您可以使用此命令复制这些数据

INSERT INTO destination_table_name
SELECT * FROM source_table_name;

如果您的目标表中已经有以前的数据,首先您可以使用此命令

TRUNCATE TABLE destination_table_name; 

感谢医学博士 Maruf Hossain

于 2012-07-17T10:23:55.943 回答
15

MySQL 不支持SELECT INTO [table]. 它一次只支持SELECT INTO [variable]并且只能执行一个变量。

但是,您可以做的是使用类似这样的CREATE TABLE语法:SELECT

CREATE TABLE bar ([column list]) SELECT * FROM foo;
于 2010-06-01T12:24:17.553 回答
15
CREATE TABLE table_name
AS  
SELECT ...(your select)
于 2012-12-10T18:42:01.623 回答
6

我刚刚尝试过这个工作,这对我有用:

CREATE TABLE New_Table_name
SELECT * FROM Original_Table_name;
于 2013-05-09T08:18:22.403 回答
4

MySQL 服务器不支持 SELECT ... INTO TABLE Sybase SQL 扩展。相反,MySQL Server 支持 INSERT INTO ... SELECT 标准 SQL 语法,这基本上是一样的。请参见第 12.2.5.1 节,“INSERT ... SELECT 语法”。

参考:-这个

于 2010-06-01T12:23:53.580 回答
2

mysql 不支持 SELECT ... INTO ... 语法,

如果是新表,请使用 CREATE TABLE ... SELECT ... 语法。

例子:

CREATE TABLE artists_and_works
  SELECT artist.name, COUNT(work.artist_id) AS number_of_works
  FROM artist LEFT JOIN work ON artist.id = work.artist_id
  GROUP BY artist.id;

在这里阅读更多创建表选择

于 2018-02-01T02:57:25.903 回答
0

如果要创建一个新表作为重复表。

CREATE TABLE WorkerClone LIKE Worker;   //only structure will show no data
CREATE TABLE WorkerClone Select * from  Worker; //DUPLICATE table created with all details.
于 2019-11-24T07:29:41.233 回答
0

你可以在没有CREATE TABLE++的情况下做到这一点像这样INSERT INTODROP TABLE

SELECT @newsletter_to_send := id_subscriber
FROM subscribers WHERE your_condition = your_value;
于 2021-07-11T01:23:22.177 回答
-2

MySQL 不支持SELECT INTO [table]. 它一次只支持SELECT INTO [variable]并且只能执行一个变量。

但是,您可以做的是使用类似这样的CREATE TABLE语法:SELECT

于 2011-12-23T07:38:11.423 回答