我想学习如何使用python构建sqlite,按照教程后,我一直发现这个错误,我在stackoverflow上搜索但是经过几次检查后我仍然无法弄清楚发生了什么... < / p>
这是我的代码:
import sqlite3
import csv
conn = sqlite3.connect("member_2.db")
cursor = conn.cursor()
# build db table
sql_command="""
CREATE TABLE member (
id PRIMARY KEY INTEGER AUTOINCREMENT,
name TEXT NOT NULL,
gender CHAR(1),
score INTEGER,
team TEXT
);
CREATE TABLE pick_history (
member_id INTEGER,
pick_time DATE DEFAULT (datatime('now', 'localtime')),
FOREIGN KEY(member_id) REFERENCES member(id)
);
"""
cursor.execute(sql_command)
请帮忙〜谢谢!
答案 0 :(得分:2)
在将其设置为主键之前,您需要指定id
的数据类型。例如,以下内容将起作用:
sql_command="""
CREATE TABLE member (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
gender CHAR(1),
score INTEGER,
team TEXT
);"""
感谢@kindall链接到the docs,清楚地表明在列约束之前指定了列类型。
另外,感谢@PRMoureu指出,一旦你修复了这个错误,你就会得到警告:
Warning: You can only execute one statement at a time.
因此将查询拆分为两个语句并分别创建表。