【问题标题】:Enforce Not Null field in MariaDB using Peewee使用 Peewee 在 MariaDB 中强制执行 Not Null 字段
【发布时间】:2016-04-12 06:51:48
【问题描述】:

好吧,我正在尝试将Peewee 用于一个小项目。我需要字段texturl(在MariaDB 中都是longtext)为not nullnot null 我理解不允许在字段中存储空值,所以我这样做了:

database = MySQLDatabase("mydatabase", user="", password="123justkidding", host="localhost")

class MyTable(Model):
    text = TextField(null = False)
    url = TextField(null = False, max_length = 100)

    class Meta:
        database = database

然后,当然,我创建了表格并开始添加值,很多值。问题是texturl 字段中有一些empty 值,我不希望它们存在。 我运行了这个查询:

SELECT `table`.`text`, `table`.`url` FROM `table` WHERE `table`.`text`="" AND `table`.`url`=""

并给了我四行。那么,我错过了什么?

另外,我注意到 MariaDB 有 TextMedium TextLongText 作为数据类型 在我看来,Peewee 中的TextFieldMariaDBLongText 的默认值。有什么办法可以改变吗?

提前致谢。

【问题讨论】:

  • "" 是一个空字符串,而不是NULL,所以它不违反非空约束。
  • @mata 哦...好吧,搞糊涂了,不知怎的,我以为 "" 在 MariaDB 中被认为是 NULL

标签: python mysql mariadb peewee


【解决方案1】:

"" 是空字符串。 NULL 完全不同。

【讨论】:

    猜你喜欢
    • 2013-11-29
    • 2017-05-08
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多