SQlite : 선택 하시겠습니까?


80

select into를 사용하여 다음과 같은 다른 테이블에서 데이터를 가져올 수 있는지 확실하지 않습니다.

select * into
  bookmark1 
from bookmark;    

SQlite가이 구문을 지원하지 않는다는 것이 사실입니까? 다른 대안이 있습니까?

답변:


50

이 쿼리를 시도 할 수 있습니다.

insert into bookmark1 select * from bookmark

12
이것은 bookmark1이 이미 존재한다고 가정하고 select into는 새 테이블을 작성합니다.
vit

@vit, 물론입니다. 테이블에서 다시 가져 오려는 경우입니다.
Nick Dandoulakis 2010 년

@Nick : 나는 당신이 이것을 알고 있다고 확신합니다, 나는 이것이 왜 나중에이 질문을 우연히 발견 할 수 있는지 누구에게나 분명히해야한다고 생각했습니다. :)
vit

182

다음과 같이 할 수 있습니다.

create table bookmark1 as select * from bookmark;

2
미안하지만 내가 새롭기 때문에 포인트를 줄 수는 없지만 귀하의 제안은 잘 작동합니다. 감사합니다 =)
Glaucon

3
완벽한 대답과 간결하고 요점. +1 및 많은 좋아요.
zeFree

테이블이 이미 존재 (덮어 쓰기)되고 그렇지 않은 (새 테이블 생성) 두 가지 상황에서이 작업을 수행하는 방법이 있습니까?
oob dec

이것은 실제로 대답으로 받아 들여진 것보다 더 나은 대답입니다!
MelloG 2015

1
@Glaucon 이제이 답변을 찬성하고 수락 된 답변으로 선택할 수 있습니다. 여기 오는 모든 사람들에게 도움이 될 것입니다
Avision

23

bookmark1은 북마크 테이블과 동일한 새 테이블이라고 가정합니다. 이 경우 다음 형식을 사용할 수 있습니다.

CREATE TABLE bookmark1 AS SELECT * FROM bookmark;

또는 하위 쿼리와 함께 삽입 문을 사용할 수도 있습니다. 다른 삽입 문 옵션은 다음을 참조하십시오 : SQL As Understood By SQLite


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

그러면 데이터 구조가 복사됩니다.


1
이것은 아주 영리합니다.
TheLegendaryCopyCoder

이 SQL을 선택한 프로그래밍 언어의 try-block (또는 동등한 구문)으로 래핑합니다.
knb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.