2013-04-17 33 views
10

Tôi cố gắng để chèn nhiều hàng trong một (phiên bản mới nhất) Bảng SQLite nhưng ném một lỗiChèn nhiều hàng trong SQLite

nhận ý tưởng từ HERE và đây là truy vấn sql của tôi:

INSERT INTO "Track" 
SELECT "Leonard Collections" AS "Album", 
     "Instrumental" AS "Artist", 
     "00:02:59.3800000" AS "Duration", 
     "1/1/0001 12:00:00 AM" AS "ReleasedDate", 
     "If You Love Me" AS "Title", 
     "False" AS "IsPlayableOnLocal" 
UNION 
SELECT "Leonard Collections", 
     "Instrumental", 
     "00:02:56.6930000", 
     "1/1/0001 12:00:00 AM", 
     "Espoir", 
     "False", 
UNION 
SELECT "Leonard Collections", 
     "Instrumental", 
     "00:03:51.6770000", 
     "1/1/0001 12:00:00 AM", 
     "Don't Cry For My Argentina", 
     "False" 

nhưng nó ném

SQL logic error or missing database 

near "UNION": syntax error 

đây là cấu trúc bảng của tôi

CREATE TABLE Track 
(
    ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 
    Album VARCHAR(100) NULL , 
    Artist VARCHAR(255) NOT NULL DEFAULT "Artist Unknown", 
    Duration VARCHAR(255) NOT NULL , 
    LocalPath VARCHAR(255) NULL , 
    ReleasedDate DATE NOT NULL , 
    Title VARCHAR(255) NULL , 
    IsPlayableOnLocal INTEGER NOT NULL , 
    Rating VARCHAR(255) NULL 
) 

có vấn đề với truy vấn của tôi không?

bất kỳ trợ giúp nào sẽ được đánh giá cao.

TIA

Trả lời

27

Kể từ khi bạn đề cập đến phiên bản mới nhất của SQLite, bạn nên sử dụng đa giá trị chèn (được hỗ trợ bởi SQLite kể từ phiên bản 3.7.11), như thế này:

INSERT INTO mytable (col1, col2, col3) VALUES 
    (1, 2, "abc"), 
    (2, 4, "xyz"), 
    (3, 5, "aaa"), 
    (4, 7, "bbb"); 

Đây là ngắn hơn, nhanh hơn và ít bị lỗi . Cú pháp này cũng được hỗ trợ bởi một số cơ sở dữ liệu khác (ít nhất là MySQL và PostgreSQL).

+0

Thiết bị phiên bản SQLite có phụ thuộc không? –

+1

Có và không. SQLite là một thư viện. Nếu bạn đang sử dụng thư viện SQLite (cũ) được chia sẻ, thì nó sẽ phụ thuộc vào nó. Tuy nhiên, bạn có thể sử dụng liên kết tĩnh với phiên bản mới hơn để tránh phụ thuộc thiết bị – mvp

3

Trong tuyên bố công đoàn thứ hai của bạn, bạn có ký tự ',' sau "Sai". Đó có thể là vấn đề.

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