【发布时间】:2015-10-31 06:07:51
【问题描述】:
我希望标准化我的数据库中的字段。如果该字段对其有 FK 约束,我将如何执行以下操作:
在 Django 中:
Platform.objects.filter(name='ITUNES').update(name='iTunes')
# gives FK error
在mysql中:
update main_platform set name='iTunes' where name='ITUNES'
# Cannot delete or update a parent row: a foreign key constraint fails (`avails`.`main_credit`, CONSTRAINT `main_credit_ibfk_3` FOREIGN KEY (`platform_id`) REFERENCES `main_platform` (`name`))
解决办法是什么?
请注意,我不希望添加其他字段,例如 ID 字段,其中 FK 永远不会改变,我只对更新现有字段感兴趣。
我为平台拥有的当前表是:
CREATE TABLE `main_platform` (
`name` varchar(20) NOT NULL,
`guid` varchar(40) DEFAULT NULL,
PRIMARY KEY (`name`),
KEY `guid` (`guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
【问题讨论】:
-
您需要提供更多信息。这个字段是什么类型的?什么是约束?
-
@DanielRoseman 请查看更新后的问题。