【发布时间】:2010-11-14 00:44:09
【问题描述】:
我正在将最初使用 SQL Server 2005、ASP.NET 和 Windows 2003 的 Web 应用程序及其基础架构重新开发为 LAMMP(当然,memcached 的额外 M)堆栈,并且因为架构被大量重构(有很好的理由这样做所以)我必须编写一个自定义迁移应用程序。
问题是 InnoDB 主键 + 外键约束阻碍了我将数据插入其 MySQL/InnoDB 表的能力。我已经尝试过使用 DISABLE KEYS 和 FOREIGN_KEY_CHECKS 方法并临时删除主节点上的自动增量,当尝试进行这些更改之一时抛出错误,例如 DISABLE KEYS,因为它在 InnoDB 中不受支持,或者尝试删除在空表中的列上分配主键或迁移应用程序在表为空时输入记录时抛出错误说键已存在。除了先删除所有密钥然后再将它们放回去(我认为这也会给我带来地狱)之外,还有什么可以做的吗?
谢谢!
【问题讨论】:
-
除非你有一个循环依赖,否则必须有一些顺序可以插入迁移的记录而不违反任何关键约束。
-
没有循环引用,但感谢您的提示。
标签: mysql sql-server migration innodb key