【发布时间】:2016-03-31 03:14:53
【问题描述】:
根据 django 文档https://docs.djangoproject.com/en/1.9/topics/db/models/
这是 ORM 创建 varchar 字段而不是 char。
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
等价的sql语句
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
所以在这里我们可以看到它正在使用 varchar,但我可以使用 char 代替吗?我找不到办法。
除了手动更改列
【问题讨论】:
-
你想要这个有什么具体原因吗?
-
如果很少有
varchar变成char,那不会提高数据库性能吗?我只是好奇,我可能错了@IgnacioVazquez-Abrams -
@IgnacioVazquez-Abrams 这种类型的东西对于维护数据完整性非常有用。例如我有一个可以是 5 个字符的代码或 null 的字段。而已。其他任何事情都应该失败。在 OPs 的情况下,我不确定它是否是最佳的(每个名称需要 30 个字符和大量空格填充 - eww),但它有它的用例。
标签: mysql django postgresql django-models django-orm