sql - "SQL logic error or missing database"- 插入多行时出错

标签 sql sqlite

查询:

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"

错误:

SQL logic error or missing database

near "UNION": syntax error

表格:

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
)

我的查询有什么问题?

最佳答案

既然你提到了最新版本的 SQLite,你应该使用多值插入(SQLite 从 3.7.11 版本开始支持),像这样:

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

这样更短、更快并且更不容易出错。其他一些数据库(至少 MySQL 和 PostgreSQL)也支持这种语法。

关于sql - "SQL logic error or missing database"- 插入多行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16055566/

相关文章:

android - SQLiteOpenHelper,什么时候调用onCreate

c# - Entity Framework 7 和 SQLite 表不创建

sql - 如何在sql查询中传递整型变量

mysql - 使用 JOIN 进行 SQL 查询

mysql - 在 MySQL 中有条件地加入

android - 显示存储在 SQlite 数据库中的所有记录

python - 将 python datetime.time 存储在 sqlite3 列中的最佳方法?

sql - 如何使用 SQL SERVER 计算每个多边形与多少点相交

php - 外键约束错误失败

sql - SQL 中的多重计数查询返回什么?