2010-06-28 86 views
0

我有一些旧表中的数据,有很多列需​​要插入到新表中,列数不够多。插入mysql的帮助

如果你只是试图从旧表的SQL转储数据直接导入新的一个,你会得到一个错误:

Unknown column 'fake' in 'field list' 

有没有一种方法,使这项忽略错误(INSERT IGNORE没有按没有工作!),而不重写整个转储文件?我考虑过的另一个选项是修改新表,以便在旧列中重新添加,然后执行导入,然后再次更改以在导入后删除这些列。

感谢您的任何想法。

+2

我认为您的“其他选项”重新添加缺失的列以后删除它们可能是您最好的选择。当然,你总是可以使用find-replace和regex来“重写”你的转储文件,所以它不会那么糟糕。 – 2010-06-28 21:12:58

+0

谢谢rlb--那就是我最终做的。工作得很好,只是不像我想要的解决方案那样优雅。 – julio 2010-06-28 22:16:41

回答

0

我会改变列名,以便它适合转储文件,导入它,然后重命名列名。

0

您可以随时更改转储文件以匹配当前的数据库结构。简单的search & replace可能就是这样做的。

INSERT INTO old_table(field1, field2) VALUES(...); 
vs 
INSERT INTO new_table(new_field1, new_field2) VALUES (...);