mysqlで選択します


86

私はMSSQLユーザーであり、データベースをMySQLに変換しています。私はMySQLで次のクエリを書いています:

select * into new_tbl from tbl

そして、私は次のエラーを受け取ります

Error : Undeclared variable new_tbl

このようなクエリをMySQLで適切に作成するにはどうすればよいですか?

回答:


128

CREATE TABLESELECT構文を使用します。

http://dev.mysql.com/doc/refman/5.0/en/create-table-select.html

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

SELECT INTOコマンドは新しいテーブルを作成し、あるデータベースから別のデータベースにデータをコピーできます
Shankar Regmi 2014年

3
正しい構文は次のとおりです。CREATETABLEnew_tblAS SELECT * FROM orig_tbl;
csname1910 2016年

CREATE ... SELECTは機能します、これは受け入れられた答えであるはずです。「AS」キーワードは明らかにオプションであり、SELECTINTOはMySQLでは機能しません。
レオ2018

インデックスを作成しないことを強調してください!
イワンIvković

89

MySQLでは、次のようになります

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';

MySQLドキュメント


8
微妙な違い。この場合、テーブルが存在する必要があります。のためにselect into、そうではありません。実際、そうならエラーだと思います。したがって、このソリューションの前には、テーブルスキーマを複製するステートメントを付ける必要があります。
paxdiablo 2013年

paxdiabloが言うように、これには挿入先のテーブルがすでに存在している必要があります。OPを使用してテーブルを作成するMSSQL構文。
デイブK

7
OPの質問に答えていないかもしれませんが、幸いなことに、これはまさに私が探していたものでした。
garyh 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.