MySQL 添加外键约束失败

标签 mysql django django-models django-south database-migration

我在 Django 模型中添加了一个表“GameRatings”并使用 South 进行了迁移。该表与名为“游戏”的表具有一对一的关系。

迁移失败并显示以下错误消息:

2014-01-07 10:51:15,026] (0.505) CREATE TABLE app_gameratingsmodel (game_id varchar(32) NOT NULL PRIMARY KEY, averageRating double precision NOT NULL, numRatings integer NOT NULL); args=[]

[2014-01-07 10:51:15,650] (0.294) ALTER TABLE app_gameratingsmodel ADD CONSTRAINT game_id_refs_gameID_fe5d3728 FOREIGN KEY (game_id) REFERENCES app_gamemodel (gameID);; args=[]

FATAL ERROR - The following SQL query failed: ALTER TABLE app_gameratingsmodel ADD CONSTRAINT game_id_refs_gameID_fe5d3728 FOREIGN KEY (game_id) REFERENCES app_gamemodel (gameID);

The error was: (1822, "Failed to add the foreign key constaint. Missing index for constraint 'game_id_refs_gameID_fe5d3728' in the referenced table 'app_gamemodel'")

我不明白 MySQL 在说什么索引。谁能帮忙?

谢谢。

最佳答案

当您尝试引用具有不同数据类型(例如 VARCHAR 到 INT 或者甚至 INT 到 UINT!)的两个列时,经常会发生这种情况。我总是忘记在 Workbench 中检查未签名的标记 :)

关于MySQL 添加外键约束失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970119/

相关文章:

python - Django - 为开发 Web 服务器显示 404 页面 (http ://127. 0.0.1:8000/)

PHP PDO MYSQL - 变量始终为空

mysql - 如何测试 PHP 源代码的 SQL 注入(inject)(无需自动工具)?

python - 多对多的嵌套序列化器

python - vps 上的 django - 重新启动服务器时获取 "model is already registered"

python - 从单独线程插入数据库的奇怪 Django 行为

python - 在 Django 中,是否可以为某个父类(super class)定义外键,但在查询时返回了子类?

mysql - 根据引用行的值删除行

php - 我如何根据解释结果改进此查询

database - 为什么 django 检查 settings.DATABASE_NAME db 是否实际存在以运行测试用例?