SELECT INTO和“Undeclared variable”错误

时间:2010-06-01 12:19:19

标签: mysql select-into

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

SELECT id_subscriber
  INTO newsletter_to_send
  FROM subscribers 

我收到错误:

  

#1327 - 未声明的变量:newsletter_to_send

该查询有什么问题?

11 个答案:

答案 0 :(得分:45)

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:你确定你不需要WHERE条款吗?

答案 1 :(得分:21)

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

您必须使用INSERT INTO ... SELECT ..语法才能完成此任务。

在此处阅读更多内容.. http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

答案 2 :(得分:15)

我认为你可以按照我的方式行事,希望你能解决问题。

首先使用此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; 

谢谢 Md.Maruf Hossain

答案 3 :(得分:11)

CREATE TABLE table_name
AS  
SELECT ...(your select)

答案 4 :(得分:9)

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

SELECT

答案 5 :(得分:5)

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

CREATE TABLE New_Table_name
SELECT * FROM Original_Table_name;

答案 6 :(得分:4)

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

参考: - this

答案 7 :(得分: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;

在此处阅读更多内容create-table-select

答案 8 :(得分:0)

你可以不用 CREATE TABLE + INSERT INTO + DROP TABLE 这样做:

SELECT @newsletter_to_send := id_subscriber
FROM subscribers WHERE your_condition = your_value;

答案 9 :(得分:-1)

如果要将新表创建为重复表。

CREATE TABLE WorkerClone LIKE Worker;   //only structure will show no data
CREATE TABLE WorkerClone Select * from  Worker; //DUPLICATE table created with all details.

答案 10 :(得分:-2)

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

然而,您可以使用CREATE TABLE语法与SELECT一样使用{/ p>}: