加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite – 在sqlalchemy.exc.IntegrityError :( IntegrityError)

发布时间:2020-12-12 23:42:31 所属栏目:百科 来源:网络整理
导读:我正在使用sqlite数据库,我在这个要点中声明了模型 https://gist.github.com/mmahesh/7245561 我已经用事务管理器添加了一个模型实例 with transaction.manager: model = Users(username='example',name='Example',email_primary='m@m.com',_password='examp
我正在使用sqlite数据库,我在这个要点中声明了模型

https://gist.github.com/mmahesh/7245561

我已经用事务管理器添加了一个模型实例

with transaction.manager:
    model = Users(username='example',name='Example',email_primary='m@m.com',_password='example')
    DBSession.add(model)

每当我执行initialize_sample_db development.ini时,都会显示此错误

sqlalchemy.exc.IntegrityError: (IntegrityError) constraint failed 'INSERT INTO users (name,username,email_primary,email_secondary,_password,bio) VALUES (?,?,?)' ('Example','example','m@m.com',None,None )

附加信息:
当我使用sqlite3命令工具并在’.”命令后我得到

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;

提前致谢

在表用户中,您已将列ID定义为主键.
但是,在INSERT语句中,您不提供id.

如果id是自动增量列,那将完全没问题 – 但事实并非如此.

解决方案是将sqlite_autoincrement=True添加到用户表定义中.

此外,您的用户表定义似乎过于严格 – 您需要大多数字段不可为空.这取决于你的任务,但有时过于严格可能是个坏主意 – 如果你忘记(或根本不想要)填写其中一个字段,它也会导致约束违规.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读