Rails:更改数据库上的模型 ID
出于在不同应用程序使用的 2 个不同数据库之间进行同步的原因, 我需要更改某些模型的唯一主键 ID 字段。 这样做是为了使相关行与其他数据库一致(确保它们使用相同的 ID)。
更改大多数模型的 ID 是否会以某种方式影响应用程序? 会影响数据库吗? (性能方面) 我假设我们的代码中没有硬编码的位置具有特定的 ID 号, 我将使用所有引用表中的新 ID 更新外键。
我正在使用MySQL。 谢谢。
For reasons of synchronizing between 2 different DBs used by different applications,
I need to change the unique primary key IDs fields of some of my models.
This is done in order to conform the relevant rows to the other DB (make sure they use the same ID).
Will changing the IDs of most of the models affect the application somehow?
Will it affect the DB? (performance-wise)
I'm assuming we have no hard-coded places in the code with specific ID numbers,
and that I would update the foreign keys with the new IDs in all the referenced tables.
I'm using MySQL.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本上:不,一切都应该正常。
确保考虑外键以使它们与对父主键的更改保持同步。
您可能需要确保重置 mysql 表上的自动增量计数器,以便它们高于新 ID 的最高值。更改表 tbl AUTO_INCRMENT = 100;
Basically: No, everything should just work.
Make sure to take into account foreign keys to keep those in sync with your changes to the parent primary key.
You probably need to make sure that you reset the autoincrement counters on your mysql tables so they're higher than the highest of your new IDs. ALTER TABLE tbl AUTO_INCREMENT = 100;