首页 > 解决方案 > 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 个最近的整体

我的问题是:

  1. 是否可以对我的数据库中的行设置限制,因为 AUTO_INCREMENT 越来越高。
  2. 如果行达到最大限制接下来会发生什么?我的意思是AUTO_INCREMENT会发生这种情况?
  3. 假设我们存储的索引是 5,6,7,8,9... 是否可以将每个条目的索引重置为 5->1,6->2.....

标签: phpmysqlauto-incrementarduino-esp8266

解决方案


将您的数据类型更改为 BigINT

这应该对未来几年有所帮助。直到他们决定最终使它成为 64 位或更高版本是必要的

当 AUTO_INCREMENT 达到数据类型的限制时,它会停止插入并显示错误消息,例如

从存储引擎读取自增值失败

更改 id 总是一个坏主意,所以让它保持不变, auto_increment 并不能保证一个结果数。你总是可以自己建造一个寻找 row_numbw


推荐阅读