sql - 在SQLite中用完PRIMARY KEY的INT数据类型

标签 sql database sqlite

因此,我在SQL中有一个表,该表具有带有INT数据类型的PRIMARY KEY Column。该列几乎用完了INT值,因为我在该列中已经有多达20亿个Plus值。我尝试通过将数据类型更改为BigInt来解决此问题,但导航器崩溃了。请解决此问题的最佳方法是什么?

最佳答案

如果使用负值,则行数限制为18,446,744,073,709,551,616,超出大多数(任何一个)设备每行1个字节可以存储的数量(没有行将只有1个字节,它们将是更多字节)。

更多细节
Limits In SQLite - Maximum Number Of Rows In A Table

我尝试通过将数据类型更改为BigInt来解决此问题,但导航器崩溃了

至于不影响事务的数据类型,除了在检索数据时,这是一个微妙的问题,可以通过使用隐式或显式CASTing来解决。除数据类型外,另一个是使用INTEGER PRIMARY KEY(隐式或显式,但具体是INTEGER而不是INT或BIGINT),这会使列成为rowid别名,并且只能存储整数值。在除rowid和rowid的别名以外的所有其他列中,可以存储任何类型的值。

有关更多详细信息,Datatypes In SQLite Version 3

请解决此问题的最佳方法是什么?
从SQLite的角度来看,没有任何问题。

关于sql - 在SQLite中用完PRIMARY KEY的INT数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59335163/

相关文章:

Qt:类中的QSqlDatabase对象(如何声明?)

java - 具有关系的对象形成(JDBC)

mysql - 获取两个表的结果

ruby-on-rails - Rails 模型标准化

php - Laravel/Eloquent 5 whereBetween 没有按预期工作

sqlite - sqlite3中没有这样的列错误

MySQL 超慢内连接与 group by

mysql - SELECT 如果一行中的 2 个单元格相等

PHP PDO_mssql SQLSTATE[01002] Adaptive Server 连接失败(严重性 9)

php - 如何防止刷新时重复插入数据库?