mysql - Django Char 与 Varchar
问题描述
请帮助,我有一个使用 char(12) 作为其 PK 的现有数据库。
CREATE TABLE sop_customer
(
customer_id
char(12) NOT NULL, PRIMARY KEY ( customer_id
), ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
然后我创建一个 Django 模型并基于 inspectdb 创建一个模型(很棒的工具:-))
问题是当我使用该表的外键创建另一个表时,新表将使用 varchar() 并且由于类型不同(char 与 .varchar),数据库级别的 MySQL 将不遵守关系!帮助!
我正在尝试: 1 - 将现有数据库更新为 Varchar (似乎是一个相当极端的操作只是为了让这个东西工作:-0) 2 - 获取 Django 的外键类以正确识别类型(我了解 ORM不可知论等)。2 - 强制 Django 创建一个 char 字段,然后在 Django 中添加约束,虽然我看不出如何在没有繁重的情况下实现 3 - 不使用 Django
帮助!
解决方案
布偶!- 原始表是UTF8。第二个表被创建为 latin1 CHARACTER SET :-0。
CHAR - VARCHAR 可以在 DB 级别和 Django 级别创建 FK 关系:-)
推荐阅读
- python - 我的 Spyder 在我的计算机上找不到我的模块
- javascript - Javascript - clearTimeout 不清除 setTimeout 变量
- python - 为什么我在 python 错误中收到“all”函数?
- javascript - 随时检查 URL 在 JavaScript 中的 URL 更改
- c++ - 从内存中删除 OpenVDB 对象
- javascript - useState() 是异步的问题
- php - laravel orm :按 id 排序,但将另一列的 0 值放在末尾
- java - 动态想要从其他片段中获取图像
- python - 使用 Keras 询问有关 EEG 分类的建议
- python - 如何全球化传入的函数变量python3