我在SQL Server上有一个名为BigData的表。BigData由应用程序连续修改,即使一秒钟也无法离线。另一个要求是该表只能由访问它的应用程序以外的其他进程锁定。问题是; 如何将BigData的一列从Bigint更改为int?有什么建议么?
最近我在贝宝(PayPal)面试中也遇到了一个与此非常类似的问题。这种情况对于银行或电子商务公司来说是很常见的,因为该公司具有经常使用的实时数据库。
我给出的答案是:
BigData表创建一个新表,该表看起来相同,只是该列具有新类型。完成此操作后,新表和旧表应具有相同的内容,并且两者都应与正在运行的应用程序同步。现在,可以删除旧表,并且可以将新表重命名为旧表。可能需要短暂中断(例如几分钟)以实现此目的,但这应该可以接受。