2010-01-08 27 views
77

Tôi không chắc chắn nếu tôi có thể sử dụng chọn vào để nhập dữ liệu từ bảng khác như thế này:SQlite: chọn vào?

select * into 
    bookmark1 
from bookmark;  

Có đúng là SQLite không hỗ trợ cú pháp này? Còn lựa chọn nào nữa ko?

Trả lời

50

Bạn có thể thử truy vấn này:

insert into bookmark1 select * from bookmark 
+12

Điều này giả định bookmark1 đã tồn tại, trong khi chọn tạo một bảng mới. – vit

+0

@vit, tất nhiên là có. Đó là trường hợp chúng tôi muốn nhập lại trong một bảng. –

+0

@Nick: Tôi chắc chắn bạn biết điều này, tôi chỉ nghĩ rằng điều này nên được thực hiện rõ ràng cho bất cứ ai tại sao có thể vấp ngã khi câu hỏi này sau này. :) – vit

169

Bạn có thể làm:

create table bookmark1 as select * from bookmark; 
+0

xin lỗi tôi không thể cung cấp bất kỳ điểm coz nào tôi mới, nhưng đề xuất của bạn hoạt động tốt. Cảm ơn =) – Glaucon

+21

Không sao, tôi không ở đây để lấy điểm. :) – vit

+2

Câu trả lời hoàn hảo và súc tích & cho vấn đề. 1 và rất nhiều kudo. – zeFree

20

tôi giả bookmark1 đó là một bảng mới mà bạn đã tạo mà là giống như bảng bookmark. Trong trường hợp đó, bạn có thể sử dụng định dạng sau.

CREATE TABLE bookmark1 AS SELECT * FROM bookmark; 

Hoặc bạn cũng có thể sử dụng câu lệnh chèn với truy vấn phụ. Đối với các tùy chọn chèn câu lệnh khác nhau, hãy tham khảo: SQL As Understood By SQLite

Hy vọng điều này sẽ hữu ích.

Thnks.

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

Điều này sẽ sao chép cấu trúc dữ liệu cho bạn.

+1

Điều này khá thông minh. – TheLegendaryCopyCoder

+0

bọc SQL này trong một khối thử (hoặc cấu trúc tương đương) bằng ngôn ngữ lập trình mà bạn chọn. – knb

Các vấn đề liên quan