为什么我的sql3没有工作?
cursor.execute('''
CREATE TABLE IF NOT EXISTS students(
studentid INTEGER PRIMARY KEY,
forename VARCHAR(20) NOT NULL,
surname VARCHAR(20) NOT NULL,
currentgrade VARCHAR(20) NOT NULL,
targetgrade VARCHAR(30) NOT NULL)
''')
cursor.execute('''
INSERT INTO students(studentid,forename,surname,currentgrade,targetgrade)
VALUES ("a","b","1","c","d");
''')
db.commit()
这是它抛出的错误:
sqlite3.IntegrityError: datatype mismatch
这是一个截图:
答案 0 :(得分:1)
“datatype mismatch”表示您尝试将值分配给类型与值类型不匹配的列。在这种情况下,studentid
的定义类型为INTEGER
,但您尝试插入值"a"
,这是一个字符串,或VARCHAR
。
尝试这样的事情:
cursor.execute('''
INSERT INTO students(studentid,forename,surname,currentgrade,targetgrade)
VALUES (1,"b","1","c","d");
''')