【发布时间】:2016-12-06 16:29:01
【问题描述】:
在 Django 中,当我将列(无论其数据类型如何)更改为外键引用时,它似乎不起作用。举个例子:
models.py 来自:
company_id = models.IntegerField(db_column='Company ID', blank=True, null=True)
models.py 收件人:
company_id = models.ForeignKey('TblCompanies', db_column='Company ID', null=True, on_delete=models.CASCADE)
当我进行迁移和迁移时,它显示为“OK”;没有问题。但是当我检查数据库时,它不会将这些更改显示为外键,而是索引。
无论如何我都不是 SQL 服务器专家,但通常当我从头开始 启动应用程序时,这不是问题。我会马上看到外键。在 KEY_COLUMN_USAGE 表中,我会看到相关的 reference_table _schema、table_name 和 column_name。
在这种情况下,我正在转换一个网站并从旧的 SQL 服务器中引入数据。在上面提到的表和列中,它们显示为 NULL。
我在这里错过了什么?
这是 CREATE TABLE tbl Communications 的输出,它使用两个外键。引用表应该是 tbl Customers.Company ID 和 tbl Contacts.Contact ID
tbl Communications | CREATE TABLE `tbl Communications` (
`Comm ID` int(11) NOT NULL AUTO_INCREMENT,
`Contact ID` int(11) DEFAULT '0',
`Rep` varchar(50) DEFAULT NULL,
`DateTime` datetime DEFAULT NULL,
`Type` varchar(50) DEFAULT NULL,
`Notes` longtext,
`Task ID` int(11) DEFAULT '0',
`Initiator` varchar(50) DEFAULT NULL,
`Alert` varchar(50) DEFAULT NULL,
`Date Entered` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Company ID` int(11),
KEY `Comm ID` (`Comm ID`),
KEY `Contact ID` (`Contact ID`),
KEY `DateTime` (`DateTime`),
KEY `Task ID` (`Task ID`),
KEY `tbl Communications_Company ID_2dac354a_uniq` (`Company ID`),
KEY `tbl Communications_Contact ID_01d40200_uniq` (`Contact ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
【问题讨论】:
标签: mysql sql django django-models