我的数据库中有一个表,其中有几个简单的列和一个二进制列。该表的主键是一个integer类型。
我面临的问题是自动递增的主键列已达到其最大限制 +2147483647。意味着该表中有大约 20 亿条记录。由于该表中的二进制列,它255 GB在磁盘上有大约大小。
现在,由于该数据类型限制,对该表的所有插入都已停止。逻辑解决方案是我们将该主键列转换为bigint. 但是由于ALTER TABLE命令的大小总是失败,有时甚至数据库进入不一致的状态,我们根本无法访问该表。
使用的语句:
ALTER TABLE table_name ALTER COLUMN id SET DATA TYPE bigint ;
Run Code Online (Sandbox Code Playgroud)
任何人都有任何建议来解决这个问题。