我需要更改现有数据库以添加列.因此,我还想更新UNIQUE字段以包含该新列.我正在尝试删除当前索引,但一直收到错误MySQL Cannot drop index needed in a foreign key constraint
CREATE TABLE mytable_a (
ID TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
UNIQUE(Name)
) ENGINE=InnoDB;
CREATE TABLE mytable_b (
ID TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
UNIQUE(Name)
) ENGINE=InnoDB;
CREATE TABLE mytable_c (
ID TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
UNIQUE(Name)
) ENGINE=InnoDB;
CREATE TABLE `mytable` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`AID` tinyint(5) NOT NULL,
`BID` tinyint(5) …Run Code Online (Sandbox Code Playgroud) 我有一个Django模型,具有另一个模型的外键:
class Example(models.Model)
something = models.ForeignKey(SomeModel, db_index=True)
Run Code Online (Sandbox Code Playgroud)
我想将基础数据库列保留为字段,但要删除数据库中的外键约束.
所以模型将变为:
class Example(models.Model):
something_id = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
而且,要清楚的something_id是,Django为外键字段创建的列.
我不想删除列并重新创建它(这是Django在更改模型后自动生成迁移时所执行的操作).
我想保留该字段,但我想通过迁移删除数据库中的外键约束.我不清楚如何使用Django迁移实现这一点 - 是否有一些内置的支持或者我必须运行一些原始SQL,如果是这样,我如何以编程方式获取约束的名称?