次のクエリを実行しようとすると:
SELECT id_subscriber
INTO newsletter_to_send
FROM subscribers
エラーが発生します:
#1327-宣言されていない変数:newsletter_to_send
そのクエリの何が問題になっていますか?
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
句には必要ないのですか?
MySQLはSELECT ... INTO ...
構文をサポートしていません。
そのためには、INSERT INTO ... SELECT ..
構文を使用する必要があります。
詳細はこちらをご覧ください。 http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
あなたは私の与えられた方法に従うことができ、問題を解決できることを願っています。
最初にこのsqlコマンドを使用して、バックアップを取得する新しいテーブルを作成します
CREATE TABLE destination_table_name LIKE source_table_name;
その後、このコマンドを使用してそれらのデータをコピーできます
INSERT INTO destination_table_name
SELECT * FROM source_table_name;
Destinationテーブルに以前のデータが既にある場合、まずこのコマンドを使用できます
TRUNCATE TABLE destination_table_name;
Md。Maruf Hossainによる感謝
CREATE TABLE table_name
AS
SELECT ...(your select)
MySQLはSELECT INTO [table]
をサポートしていません。 SELECT INTO [variable]
のみをサポートし、一度に1つの変数しか実行できません。
ただし、canが行うことは、 CREATE TABLE
構文とSELECT
そのようです:
CREATE TABLE bar ([column list]) SELECT * FROM foo;
私は今これに取り組んでみましたが、これは私のために働いています:
CREATE TABLE New_Table_name
SELECT * FROM Original_Table_name;
MySQL Serverは、Sybase SQL拡張機能のSELECT ... INTO TABLEをサポートしていません。代わりに、MySQLサーバーはINSERT INTO ... SELECT標準SQL構文をサポートしますが、これは基本的に同じものです。セクション12.2.5.1「INSERT ... SELECT構文」を参照してください。
参照:- this
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