sqlite SQL问题:“."附近:语法错误

qfe3c7zg  于 2023-04-30  发布在  SQLite
关注(0)|答案(2)|浏览(214)

我说“近”有一个错误。“:语法错误。我不知道怎么修。

def createTable(table):
    c = conn.cursor()
    c.execute('''
        CREATE TABLE IF NOT EXISTS "{tablename}" (
        "id"    INTEGER,
        "snapshotTime"  TEXT NOT NULL,
        "open_ask"  REAL NOT NULL,
        "open_bid"  REAL NOT NULL,
        "close_ask" REAL NOT NULL,
        "close_bid" REAL NOT NULL,
        "high_ask"  REAL NOT NULL,
        "high_bid"  REAL NOT NULL,
        "low_ask"   REAL NOT NULL,
        "low_bid"   REAL NOT NULL,
        PRIMARY KEY("id" AUTOINCREMENT)
    );'''.format(tablename=table)
    )

    conn.commit()

def loadData(table, data):
    createTable(table)
    c = conn.cursor()
    c.executemany('''
        INSERT INTO {tablename} 
        (snapshotTime, open_ask, open_bid, close_ask, close_bid, 
        high_ask, high_bid, low_ask, low_bid) 
        VALUES (?,?,?,?,?,?,?,?,?);'''.format(tablename=table), data)

    conn.commit()`your text`

我说“近”有一个错误。“:语法错误。我不知道怎么修。

jyztefdp

jyztefdp1#

对于表名,将双引号替换为反引号或方括号。

"{tableName}" should be `{tablename}`
sr4lhrrt

sr4lhrrt2#

我认为你的创建表脚本是错误的。如果不直接向SQL传递文字,就不需要引号。此外,多行字符串通常使用双引号,而不是单引号。我不确定您使用的是哪个版本的SQL,所以我不确定要使用的具体语法。下面是更新后的代码:

def createTable(table):
    c = conn.cursor()
    c.execute("""
        CREATE TABLE IF NOT EXISTS {tablename} (
        id            INTEGER  NOT NULL     AUTOINCREMENT,
        snapshotTime  TEXT     NOT NULL,
        open_ask      REAL     NOT NULL,
        open_bid      REAL     NOT NULL,
        close_ask     REAL     NOT NULL,
        close_bid.    REAL     NOT NULL,
        high_ask      REAL     NOT NULL,
        high_bid      REAL     NOT NULL,
        low_ask       REAL     NOT NULL,
        low_bid       REAL     NOT NULL,
        PRIMARY KEY(id)
    );""".format(tablename=table)
    )

    conn.commit()

def loadData(table, data):
    createTable(table)
    c = conn.cursor()
    c.executemany("""
        INSERT INTO {tablename} 
        (snapshotTime, open_ask, open_bid, close_ask, close_bid, 
        high_ask, high_bid, low_ask, low_bid) 
        VALUES (?,?,?,?,?,?,?,?,?);""".format(tablename=table), data)

    conn.commit()

相关问题