为什么我的 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
截图如下:
最佳答案
“数据类型不匹配”意味着您试图将值分配给类型与值类型不匹配的列。在本例中,studentid
定义为 INTEGER
类型,但您尝试插入值 "a"
,它是一个字符串,或 VARCHAR
。
尝试这样的事情:
cursor.execute('''
INSERT INTO students(studentid,forename,surname,currentgrade,targetgrade)
VALUES (1,"b","1","c","d");
''')
关于database - 带有游标的sqlite3执行完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48566555/