SQlite:選択しますか?


80

select intoを使用して、次のような別のテーブルからデータをインポートできるかどうかはわかりません。

select * into
  bookmark1 
from bookmark;    

SQliteがこの構文をサポートしていないというのは本当ですか?他に選択肢はありますか?

回答:


51

このクエリを試すことができます:

insert into bookmark1 select * from bookmark

12
これは、bookmark1がすでに存在していることを前提としていますが、selectintoは新しいテーブルを作成します。
vit 2010年

@vit、もちろんそうです。これは、テーブルに再度インポートする場合のためです。
Nick Dandoulakis 2010年

@ニック:あなたはこれを知っていると確信しています、私はこれが後でこの質問に出くわすかもしれない理由を誰にでも明らかにするべきだと思っただけです。:)
vit 2010年

182

あなたができること:

create table bookmark1 as select * from bookmark;

2
申し訳ありませんが、私は新しいポイントを与えることはできませんが、あなたの提案はうまくいきます。ありがとう=)
Glaucon 2010年

3
完璧な答えと簡潔&要点。+1とたくさんの称賛。
zeFree 2013年

テーブルがすでに存在する(上書きする)場合と存在しない場合(新しいテーブルを作成する)の2つの状況でこの作業を行う方法はありますか?
oob

これは実際には、答えとして受け入れられたものよりも良い答えです!
MelloG 2015

1
@Glauconは、この回答に賛成して、承認された回答として選択できるようになりました。それはここに来るすべての人を助けます
Avision 2015

22

ブックマーク1は、ブックマークテーブルと同じ、作成した新しいテーブルだと思います。その場合、以下のフォーマットを使用できます。

CREATE TABLE bookmark1 AS SELECT * FROM bookmark;

または、サブクエリで挿入ステートメントを使用することもできます。さまざまな挿入ステートメントオプションについては、SQLiteが理解しているSQLを参照してください。


11
create table NewTable as
select * from OldTable where 1 <> 1

これにより、データ構造がコピーされます。


1
これはかなり賢いです。
TheLegendaryCopyCoder 2014年

このSQLを、選択したプログラミング言語のtry-block(または同等の構成)でラップします。
knb 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.