【问题标题】:Django Char vs. VarcharDjango Char 与 Varchar
【发布时间】:2020-07-04 02:50:52
【问题描述】:

请帮忙,我有一个使用 char(12) 作为其 PK 的现有数据库。

创建表sop_customer ( customer_id char(12) 非空, 主键 (customer_id), ) ENGINE=InnoDB 默认字符集=utf8;

然后我创建一个 Django 模型并基于 inspectdb 创建一个模型(很棒的工具:-))

问题是当我使用该表的外键创建另一个表时,新表将使用 varchar() 并且由于类型不同(char 与 .varchar),数据库级别的 MySQL 将不遵守关系!

我正在尝试: 1 - 将现有数据库更新为 Varchar(似乎是一个相当极端的操作,只是为了让这个东西工作:-0) 2 - 获取 Django 的外键类以正确识别类型(我了解 ORM 不可知论等)。 2 - 强制 Django 创建一个 char 字段,然后在 Django 中添加约束,尽管我看不出如何在没有繁重的情况下实现这一点 3 - 不使用 Django

救命!

【问题讨论】:

    标签: mysql django char foreign-keys varchar


    【解决方案1】:

    布偶! - 原始表是UTF8。第二个表被创建为 latin1 CHARACTER SET :-0。

    CHAR - VARCHAR 可以在 DB 级别和 Django 级别创建 FK 关系 :-)

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 2017-07-11
      • 2011-01-18
      • 2011-03-23
      • 2011-08-24
      • 2013-06-24
      • 2011-11-09
      • 1970-01-01
      • 2013-04-30
      相关资源
      最近更新 更多