我有一个mysqldump文件是从产品的早期版本创建的,无法导入到产品的新版本中,因为db结构稍有变化(主要是改变了不是NULL DEFAULT 0到UNIQUE KEY DEFAULT NULL)。在导入之前更改mysqldump文件
如果我只是导入旧的转储文件,它将会出错,因为默认值为0的列现在会破坏UNIQUE约束。
要手动更改mysqldump文件或导入到临时表并将其更改,然后复制到新表中将很容易。但是,有没有办法以编程方式执行此操作,因此它是可重复的而不是手动的? (这将需要为此产品的许多实例发生)。
我在想,像是禁用导入的关键约束,然后将所有值= 0设置为NULL,然后重新启用关键约束?
这可能吗?任何帮助赞赏。
感谢Gary--我结束了删除索引和然后进行导入和转换,然后重新应用索引 - 我读过UNIQUE_CHECKS有一些奇怪的行为,并且您写的这些语句不起作用。 理论似乎工作,但感谢您的意见! – julio 2010-06-11 22:33:07