外部キーの参照を変更してフィールドの名前を変更しましたが、同じフィールドの2つの制約が異なるテーブルを指しています。 、Djangoを使用した外部キーの移行
IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`test_tcf_api`.`storage_activity`, CONSTRAINT `source_id_refs_id_fc96b4b044ceb88` FOREIGN KEY (`source_id`) REFERENCES `storage_fsobject` (`id`))')
どのように私は明らかに、この古い参照を削除する必要があります: 私のモデルは、この
class Activity(models.Model):
...
source = models.ForeignKey(FSObject)
ようなものだったと
class Activity(models.Model):
...
source = models.ForeignKey(FreezedRef)
そして、私のテストを実行するときに、今、私はこのメッセージを得るになりました南はそれをスキップした。
なぜあなたはMySQLが悪いと思いますか? – Andrew
ACIDは、デフォルトで、実際に吹き飛ぶ、No ForeignKey制約、トランザクションなし、1k以上のフィールドのインデックス化ができません(これはとにかくデザインが悪いと主張できますが、 EXPLAIN ANALYZEの実装なし、スキーマ変更コマンド中のトランザクションなし、クエリはテーブルごとにクエリごとに1つのインデックスのみを使用します(インデックスはその場で組み合わせるのではなく、多列インデックスを大量に使用します)。私はいくつかの時間を過ごすともっと考えることができると確信しています。基本的に私は毎週何か新しいものを見つける – John
明らかに、これらのうちのいくつか(fkのものもトランザクションもない)がinnodb可能性があります。あなたがMyISAMにスワップしなければならない少しのパフォーマンスを得るために、早く遊びたいならば、InnoDBはデフォルトでなければなりません。 MySQL IMOに関して本当に良いのは、これが最初に広く採用されたオープンソースのDBであり、Webに多くのオプションを開いたことだけです。 PHPについても同様のことが言えるでしょう。多くの人がPHPが素晴らしいツールであると主張するとは思いません。 – John