我有一些旧表中的数据,有很多列需要插入到新表中,列数不够多。插入mysql的帮助
如果你只是试图从旧表的SQL转储数据直接导入新的一个,你会得到一个错误:
Unknown column 'fake' in 'field list'
有没有一种方法,使这项忽略错误(INSERT IGNORE没有按没有工作!),而不重写整个转储文件?我考虑过的另一个选项是修改新表,以便在旧列中重新添加,然后执行导入,然后再次更改以在导入后删除这些列。
感谢您的任何想法。
我有一些旧表中的数据,有很多列需要插入到新表中,列数不够多。插入mysql的帮助
如果你只是试图从旧表的SQL转储数据直接导入新的一个,你会得到一个错误:
Unknown column 'fake' in 'field list'
有没有一种方法,使这项忽略错误(INSERT IGNORE没有按没有工作!),而不重写整个转储文件?我考虑过的另一个选项是修改新表,以便在旧列中重新添加,然后执行导入,然后再次更改以在导入后删除这些列。
感谢您的任何想法。
我会改变列名,以便它适合转储文件,导入它,然后重命名列名。
您可以随时更改转储文件以匹配当前的数据库结构。简单的search & replace
可能就是这样做的。
INSERT INTO old_table(field1, field2) VALUES(...);
vs
INSERT INTO new_table(new_field1, new_field2) VALUES (...);
我认为您的“其他选项”重新添加缺失的列以后删除它们可能是您最好的选择。当然,你总是可以使用find-replace和regex来“重写”你的转储文件,所以它不会那么糟糕。 – 2010-06-28 21:12:58
谢谢rlb--那就是我最终做的。工作得很好,只是不像我想要的解决方案那样优雅。 – julio 2010-06-28 22:16:41