gpt4 book ai didi

sqlite - 无法在 sqlite3 和 web2py 中添加具有默认值 NONE 的 NOT NULL

转载 作者:行者123 更新时间:2023-12-03 19:38:27 27 4
gpt4 key购买 nike

我正在尝试在 web2py 的默认 sqlite3 数据库中创建一个名为“公司”的表。这是我的代码-

db.define_table('company',
Field('company_name', notnull=True, unique=True),
Field('email'),
Field('phone', notnull=True),
Field('url3'),
format = '%(company_name)s'
)

db.company.email.requires = IS_EMAIL()
db.company.url3.requires = IS_EMPTY_OR(IS_URL())

运行代码后,我遇到了错误-
<class 'sqlite3.OperationalError'> Cannot add a NOT NULL column with default value NULL

我跟踪支持 web2py 发出的票。这表明我在这一行有错误-
format = '%(company_name)s'

如果有人向我解释这里发生了什么,这对我真的很有帮助?以及如何克服这个错误?

最佳答案

如果这是一个现有表,并且您正在添加/更新 company_name列,sqlite 在添加一个没有默认值的 NOT NULL 列时会报错(参见 here )。

如果表中没有记录,您可以简单地删除表并从头开始创建它。如果有记录,可以先导出已有数据,再重新建表,再将原数据导入新表。

另外,请注意 web2py 不会迁移字段属性的更改,例如 notnull。和 unique .

关于sqlite - 无法在 sqlite3 和 web2py 中添加具有默认值 NONE 的 NOT NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393587/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com