SQlite: seleccionar en?

80

No estoy seguro de poder usar select into para importar datos de otra tabla como esta:

select * into
  bookmark1 
from bookmark;    

¿Es cierto que SQlite no admite esta sintaxis? ¿Hay otras alternativas?

Glaucón
fuente

Respuestas:

51

Puedes probar esta consulta:

insert into bookmark1 select * from bookmark
Nick Dandoulakis
fuente
12
Esto supone que el marcador1 ya existe, mientras que seleccionar en crea una nueva tabla.
vit
@vit, sí por supuesto. Es para el caso que queremos importar nuevamente en una tabla.
Nick Dandoulakis
@Nick: Estoy seguro de que lo sabe, solo pensé que esto debería quedar claro para cualquiera por qué puede tropezar con esta pregunta más adelante. :)
vit
182

Podrías hacerlo:

create table bookmark1 as select * from bookmark;
vit
fuente
2
Lo siento, no puedo dar ningún punto porque soy nuevo, pero tu sugerencia funciona bien. Gracias =)
Glaucon
3
Respuesta perfecta y concisa y al grano. +1 y muchas felicitaciones.
zeFree
alguna forma de hacer que esto funcione en dos situaciones, donde la tabla ya existe (sobrescribir) y donde no (crear una nueva tabla)?
oob
¡Esta es en realidad una mejor respuesta que la aceptada como respuesta!
MelloG
1
@Glaucon ahora puede votar esta respuesta y seleccionarla como la respuesta aceptada. Ayudará a todos los que vengan aquí
Avision
22

Supongo que bookmark1 es una nueva tabla que ha creado, que es la misma que la tabla de marcadores. En ese caso, puede utilizar el siguiente formato.

CREATE TABLE bookmark1 AS SELECT * FROM bookmark;

O también puede usar la declaración de inserción con subconsulta. Para conocer las diferentes opciones de declaración de inserción, consulte: SQL entendido por SQLite

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

Esto copiará la estructura de datos por usted.

Wadood Chaudhary
fuente
1
Esto es bastante inteligente.
TheLegendaryCopyCoder
envuelva este SQL en un bloque de prueba (o construcción equivalente) en el lenguaje de programación de su elección.
knb