Intoと「宣言されていない変数」エラーを選択します
-
05-10-2019 - |
質問
次のクエリを実行しようとするとき:
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;
宛先テーブルに以前のデータが既にある場合は、まずこのコマンドを使用できます
TRUNCATE TABLE destination_table_name;
Md。MarufHossainに感謝します
CREATE TABLE table_name
AS
SELECT ...(your select)
MySQLはサポートしていません SELECT INTO [table]
. 。サポートするだけです SELECT INTO [variable]
一度にこの変数のみを行うことができます。
あなたは何 できる ただし、使用します CREATE TABLE
との構文 SELECT
そのようです:
CREATE TABLE bar ([column list]) SELECT * FROM foo;
私は今これに取り組んでみましたが、これは私のために機能します:
CREATE TABLE New_Table_name
SELECT * FROM Original_Table_name;
MySQL Serverは、Select ... Into Table Sybase SQL拡張子をサポートしていません。代わりに、MySQL ServerはINSERT INTOにサポートしています...標準のSQL構文を選択します。これは基本的に同じものです。セクション12.2.5.1、「挿入...構文を選択」を参照してください。
ref: - これ
mysqlはselectをサポートしません... into ... syntax、
新しいテーブルの場合は、作成テーブルの作成を使用してください... 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;
詳細はこちらをご覧ください 作成テーブルセレクトを作成します
MySQLはサポートしていません SELECT INTO [table]
. 。サポートするだけです SELECT INTO [variable]
一度にこの変数のみを行うことができます。
しかし、あなたができることは、使用することです CREATE TABLE
との構文 SELECT
そのようです: