相关疑难解决方法(0)

MySQL无法删除外键约束中所需的索引

我需要更改现有数据库以添加列.因此,我还想更新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)

mysql

137
推荐指数
7
解决办法
17万
查看次数

Django 1.9在迁移中删除了外键

我有一个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,如果是这样,我如何以编程方式获取约束的名称?

django foreign-keys database-migration django-1.9

7
推荐指数
3
解决办法
4920
查看次数