我正在更新最初设计不佳的表。该表目前有一个主键是供应商的名称。这可以作为许多其他表格的外键。这导致了供应商名称初始输入错误或需要修复的拼写错误。由于这是关系的外键,所以这比它的价值更复杂。在Oracle中更改主键
当前架构: VENDOR_NAME(PK)Vendor_contact评论
需要的模式: ID(PK)VENDOR_NAME Vendor_contact评论
我想要更新的主键是自动生成的,数字键。供应商名称字段需要保留,但不再是关键。我还需要更新其他表和联接表上外键的值。
最好的办法是在我的供应商表上创建一个新的数字标识列,crosswalk将供应商名称标识为id并添加一个新的外键,并将新的id作为外键,放弃供应商的外键这些表上的名称(根据this post),然后以某种方式将该ID标记为主键,并取消标记供应商名称?
还是有更简化的方式做到这一点,这是不是很破碎?
重要的是要注意,只有5个用户可以访问这个表格,所以我可以在这些更新完成的一段时间内轻松关闭它们 - 这不是问题。
我正在使用SQLDeveloper和Python/Django。
哪个版本的数据库? – APC
我们最近升级到12C。 – rockman