Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 在sqlalchemy.exc.IntegrityError:(IntegrityError)约束失败';插入到用户中_Sqlite_Sqlalchemy_Pyramid - Fatal编程技术网

Sqlite 在sqlalchemy.exc.IntegrityError:(IntegrityError)约束失败';插入到用户中

Sqlite 在sqlalchemy.exc.IntegrityError:(IntegrityError)约束失败';插入到用户中,sqlite,sqlalchemy,pyramid,Sqlite,Sqlalchemy,Pyramid,我使用的是sqlite数据库,我在本文中声明了模型 我添加了一个带有事务管理器的模型实例 with transaction.manager: model = Users(username='example',name='Example', email_primary='m@m.com', _password='example') DBSession.add(model) 每当我执行initialize_sample_db development.ini时,就会出现此错误 sq

我使用的是sqlite数据库,我在本文中声明了模型

我添加了一个带有事务管理器的模型实例

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, 'example', None )
其他信息: 当我使用sqlite3命令工具并且在“.d”命令之后,我得到

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
COMMIT;

提前感谢

在表
users
中,您已将列
id
定义为主键。 但是,在
INSERT
语句中,您没有提供
id

如果
id
是自动递增列,那就完全可以了,但事实并非如此

解决方案是添加到
用户
表定义中


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

我个人喜欢从强约束开始,并在真正必要时删除它们;