php - MySQL 行限制和 AUTO_INCREMENT
问题描述
我使用 NodeMCU arduino 将传感器数据发送到 MySQL 数据库。我用这段代码来创建我的表
CREATE TABLE Sensor (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
value1 VARCHAR(10),
value2 VARCHAR(10),
value3 VARCHAR(10),
reading_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
我还使用一个 php 页面将数据存储在数据库中,并使用第二个 php 页面来可视化 40 个最近的整体
我的问题是:
- 是否可以对我的数据库中的行设置限制,因为 AUTO_INCREMENT 越来越高。
- 如果行达到最大限制接下来会发生什么?我的意思是AUTO_INCREMENT会发生这种情况?
- 假设我们存储的索引是 5,6,7,8,9... 是否可以将每个条目的索引重置为 5->1,6->2.....
解决方案
将您的数据类型更改为 BigINT
这应该对未来几年有所帮助。直到他们决定最终使它成为 64 位或更高版本是必要的
当 AUTO_INCREMENT 达到数据类型的限制时,它会停止插入并显示错误消息,例如
从存储引擎读取自增值失败
更改 id 总是一个坏主意,所以让它保持不变, auto_increment 并不能保证一个结果数。你总是可以自己建造一个寻找 row_numbw
推荐阅读
- css - 在页面上除顶部之外的其他位置添加 bootstrap4 导航栏
- python - 在函数中使用模块,这是另一个模块中的导入
- android - DeepLinking 停止导航到 uber 本机 android 应用程序
- batch-file - 将文件内容读入变量并将变量拆分为单独的参数
- android - 在 Android 中具有放大/缩小功能的网格布局中具有方形图像的最简单方法
- php - 变量包含另一个变量的名称
- python - 销毁事件执行绑定函数 5 次
- ios - 将新图像上传到服务器时,如何快速忽略或覆盖 UIImage 缓存?
- c# - WCF Web 服务正在将返回值转换为输出参数
- regex - 编译错误:尝试从顶部 StackOverflow 答案运行代码时找不到方法或数据成员