問題陳述:在 postgresql 表中,對于列 'id' 型別 'serial integer',出現“整數超出范圍”的錯誤
RCA:因為它是一個序列整數列,已經超過了它的最大范圍 2147483647。它無法加載更多資料
解決方案:需要將列的資料型別從 INTEGER 更改為 BIGINT。
對于這個解決方案,我嘗試執行 ALTER 命令 ALTER TABLE table_name ALTER COLUMN id TYPE BIGINT 但是該表包含超過 20 億個資料,這也需要時間 ALTER 命令在內部創建一些重復的表,這會消耗資料庫中的所有空間.
作為一種替代方法,我們正在嘗試不同的解決方法,即創建一個 id 列為 BIGINT 而不是 INTEGER 的表的副本。然后將資料從舊表移動到新表
問題:如何創建具有相同表定義/結構、索引和約束但沒有資料的新副本表?或任何其他可能的方法來解決我的“Integer_out_of_range”問題
提前致謝
uj5u.com熱心網友回復:
您可以使用LIKE和 INCLUDING:
CREATE TABLE new_table(LIKE current_table INCLUDING ALL);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/531031.html
上一篇:使用替換從另一列更新列值
