【发布时间】:2020-11-20 14:08:42
【问题描述】:
我得到了三个使用外键约束正确连接的mysql数据库表,如下所示:
但问题是外键受非整数和自增类型字段约束,而是全部为 varchar 类型。
我试图不阻止对已经正确映射的这些表重新进行映射,而是想添加一个新的整数类型和唯一的主键和外键。这样所有表中的所有数据都保持不变。请让我知道我是否可以通过任何方式运行可以使用新的主键和外键自动映射现有表的脚本。
我尝试在基表上添加主键
ALTER TABLE videofile ADD id int NOT NULL AUTO_INCREMENT primary key;
这将向基表添加一个新的主键,但我希望新添加的主键作为基于现有映射键和数据的其他表的 FK。如果有任何脚本可以自定义此需求,请告诉我。
【问题讨论】:
-
为什么你觉得需要行标识符?是否存在推动变化的存储或其他考虑因素?
-
@bbaird:因为一些 java 脚本库需要 int 字段来绑定数据,而不是现在触发此问题的文本
-
Aren't them many:many -- 即一个视频有很多主题,一个主题与很多视频相关联?
-
此任务需要自定义代码。您需要 1) 删除外键约束。 2) 将标识符添加到主题表中。 3) 将标识符添加到视频表中。 4) 将标识符添加到 elan 表中。 5) 为视频表创建外键。 6) 为 elan 表创建外键。 7)删除现有的外键。 8) 添加新的外键和外键约束。 9) 删除主索引并创建新的主索引。
-
选择支持 SQL 的编程语言。就像我说的,该任务需要经过测试和重新测试的自定义代码。您可以尝试通过 Workbench 执行此操作,但太容易出错了。
标签: mysql database-design foreign-keys