【发布时间】:2016-04-12 06:51:48
【问题描述】:
好吧,我正在尝试将Peewee 用于一个小项目。我需要字段text 和url(在MariaDB 中都是longtext)为not null 和not 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
然后,当然,我创建了表格并开始添加值,很多值。问题是text 和url 字段中有一些empty 值,我不希望它们存在。
我运行了这个查询:
SELECT `table`.`text`, `table`.`url` FROM `table` WHERE `table`.`text`="" AND `table`.`url`=""
并给了我四行。那么,我错过了什么?
另外,我注意到 MariaDB 有 Text、Medium Text、LongText 作为数据类型
在我看来,Peewee 中的TextField 是MariaDB 中LongText 的默认值。有什么办法可以改变吗?
提前致谢。
【问题讨论】:
-
""是一个空字符串,而不是NULL,所以它不违反非空约束。 -
@mata 哦...好吧,搞糊涂了,不知怎的,我以为
""在 MariaDB 中被认为是NULL。
标签: python mysql mariadb peewee