INSERT即使MySQL中不存在列

时间:2014-10-31 15:06:33

标签: mysql

假设我有一个旧的.SQL转储,并且自创建以来,我已经更改了表模式。

我可以跑步:

INSERT INTO `ec_product_campaign_relations` (`campaign_id`, `product_id`, `product_qty`) VALUES (30,28,1),(30,27,0),(30,31,0),(30,30,0);

但是如果列product_qty不再存在,则不会插入该行。

如何强行插入线并忽略该列不存在?

编辑:应该提到我在PHP中工作,它是用于同步表格的脚本......所以没有“手动”控制它。

2 个答案:

答案 0 :(得分:1)

由于编辑所有SQL转储并不简单,我建议您将列添加到表中,进行导入,然后删除列。

答案 1 :(得分:0)

您可能希望为此导入创建新数据库并按原样恢复转储。然后,一旦掌握了通过比较一个模式和一个模式进行了哪些更改,就可以创建一系列ALTER TABLE语句,使其同步。

我倾向于将这些记录在文本文件中,以防我以后需要重播它们,并将它们保存为更改内容的列表。您可能不得不多次这样做,所以笔记有帮助。

然后,一旦您将它们清理为列兼容,请逐个转储此数据库,并根据需要还原到另一个数据库。