我正在更新一个旧的MySQL数据库,发现不需要各个表中的几个列。但是,我不想只是删除列,而是暂时禁用它们,这样我就可以测试代码,看看在我决定完成删除列之前有多少事情发生了。如果访问特定列,如何告诉服务器抛出错误?
答案 0 :(得分:0)
您可以将表oldname重命名为newname并使用oldname创建视图。该视图看起来像列删除表。如果有问题。你只需更改名称表和视图。
答案 1 :(得分:0)
您可能需要考虑使用视图。作为一个例子,我创造了这个小提琴:http://sqlfiddle.com/#!2/a8947/2
看看这两个查询。一个人选择你不确定你需要的列表(我称之为" legacyData")。另一个选择视图。您可以在视图中看到列" legacyData"不再存在。
如果你从桌子上写字,我不认为这会有效,但如果你正在阅读表格,那么观点是可行的选择。
您希望在制作中尝试使用的步骤是:
通过这样做,您已经用视图替换了您的表格。此方法将允许您查看应用程序是否正在访问该表的legacyData字段。如果没有,您可以删除视图,重命名表格,然后删除相关列。
对于视图来说,性能通常不是很好,特别是如果你有大量数据,所以要小心。在类似的情况下,我从一个视图开始,但由于性能原因(表有2M +行),我们改为普通的表,而是通过触发器填充。