创建数据库SQLite python时出现语法错误

时间:2017-12-10 13:17:20

标签: python sqlite syntax-error

这是我的代码:

conn.execute("""
        CREATE TABLE IF NOT EXISTS Blockchain_transactions(
        hash_of_previous_block CHAR PRIMARY KEY DEFAULT NULL,
        id INTEGER DEFAULT NULL,
        transaction CHAR DEFAULT NULL
    );""")

它会生成语法错误

sqlite3.OperationalError: near "transaction": syntax error

备注:这在我的代码中较早出现,并且不会生成相同的错误

conn.execute("""
        CREATE TABLE IF NOT EXISTS Blockchain_blocks (
        hash_of_previous_block CHAR PRIMARY KEY DEFAULT NULL,
        proof_of_work INTEGER DEFAULT NULL,
        difficulty INTEGER DEFAULT NULL
    );""")

1 个答案:

答案 0 :(得分:4)

transactionsqlite keyword

将列名更改为不同的名称,它将起作用。

避免为列名保留关键字,或者像这样转义它们:

conn.execute("""
    CREATE TABLE IF NOT EXISTS Blockchain_transactions(
    hash_of_previous_block CHAR PRIMARY KEY DEFAULT NULL,
    id INTEGER DEFAULT NULL,
    `transaction` CHAR DEFAULT NULL
);""")

可以在链接关键字页面中找到转义/引用关键字的其他可能性。