database - 带有游标的sqlite3执行完整性错误

标签 database sqlite sqldatatypes

为什么我的 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

截图如下:

sqlite3 error

最佳答案

“数据类型不匹配”意味着您试图将值分配给类型与值类型不匹配的列。在本例中,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/

相关文章:

sql - 如何从一列插入多行?

mysql 算术函数中的单引号

java - 未处理的异常 org.json.jsonexception

java - 如何向数据库中的字段添加一个?

php - 如何连接两个数据库表并从连接表中返回最低价格

mysql - Sequelize db :seed:all . 不起作用

c# - 无法打开数据库文件

php - 存储纬度和经度的最佳 mysql 数据类型是什么?

mysql - 如何在 MySQL 数据库中存储精确的十进制坐标

java - 使用spring执行存储过程