【发布时间】:2019-12-16 19:15:47
【问题描述】:
所以我在 SQL 中有一个表,它有一个 INT 数据类型的 PRIMARY KEY 列。该列几乎用完了 INT 值,因为我在该列中已经有多达 20 亿加值。我尝试通过将数据类型更改为 BigInt 来解决此问题,但导航器崩溃了。请问解决这个问题的最佳方法是什么?
【问题讨论】:
-
鉴于整数是 4 个字节并且可以将值存储到数十亿,因此 200 万行似乎并不过分。
-
其实我的意思是20亿加起来
-
如果需要,SQLite 的 INTEGER 数据类型最多可以占用 8 个字节,最大值为 2^63 - 1 = 9223372036854775807,所以你甚至没有接近。
-
你真的应该在未来的PK中使用INTEGER,而不是INT:sqlite.org/lang_createtable.html#rowid