sqlite – 在sqlalchemy.exc.IntegrityError :( IntegrityError)约束失败’INSERT INTO用户

前端之家收集整理的这篇文章主要介绍了sqlite – 在sqlalchemy.exc.IntegrityError :( IntegrityError)约束失败’INSERT INTO用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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添加用户表定义中.

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

猜你在找的Sqlite相关文章