SQlite: auswählen in?

80

Ich bin nicht sicher, ob ich select in verwenden kann, um Daten aus einer anderen Tabelle wie dieser zu importieren:

select * into
  bookmark1 
from bookmark;    

Stimmt es, dass SQlite diese Syntax nicht unterstützt? Gibt es noch andere Alternativen?

Glaukon
quelle

Antworten:

51

Sie können diese Abfrage versuchen:

insert into bookmark1 select * from bookmark
Nick Dandoulakis
quelle
12
Dies setzt voraus, dass bookmark1 bereits vorhanden ist, während select in eine neue Tabelle erstellt.
Vit
@vit, ja natürlich. Es ist für den Fall, dass wir wieder in eine Tabelle importieren möchten.
Nick Dandoulakis
@ Nick: Ich bin sicher, dass Sie das wissen. Ich dachte nur, dass dies jedem klar gemacht werden sollte, warum er später auf diese Frage stoßen könnte. :)
vit
180

Du könntest es tun:

create table bookmark1 as select * from bookmark;
vit
quelle
2
Entschuldigung, ich kann keinen Punkt nennen, weil ich neu bin, aber Ihr Vorschlag funktioniert gut. Danke =)
Glaukon
3
Perfekte Antwort und prägnant und auf den Punkt. +1 und viel Lob.
ZeFree
Gibt es eine Möglichkeit, diese Arbeit in zwei Situationen zu erhalten, in denen die Tabelle bereits vorhanden ist (überschreiben) und in denen dies nicht der Fall ist (neue Tabelle erstellen)?
oob
Dies ist tatsächlich eine bessere Antwort als die als Antwort akzeptierte!
MelloG
1
@Glaucon Jetzt können Sie diese Antwort positiv bewerten und als akzeptierte Antwort auswählen. Es wird jedem helfen, der hierher kommt
Avision
22

Ich gehe davon aus, dass bookmark1 eine neue Tabelle ist, die Sie erstellt haben und die mit der Lesezeichentabelle identisch ist. In diesem Fall können Sie das folgende Format verwenden.

CREATE TABLE bookmark1 AS SELECT * FROM bookmark;

Sie können auch die insert-Anweisung mit Unterabfrage verwenden. Weitere Optionen für Einfügeanweisungen finden Sie unter: SQL wird von SQLite verstanden

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

Dadurch wird die Datenstruktur für Sie kopiert.

Wadood Chaudhary
quelle
1
Das ist ziemlich klug.
TheLegendaryCopyCoder
Wickeln Sie diese SQL in einen Try-Block (oder ein gleichwertiges Konstrukt) in der Programmiersprache Ihrer Wahl.
Knb