mysql - 自动增量已自动重置回 1

标签 mysql sql ruby-on-rails mariadb

我刚遇到一个我无法解决的问题。

我有一个用作队列的数据库表 project_queues,我在其中存储了一些记录。处理记录时,它们将被删除。 删除由 rails 构造 record.destroy 在一个循环中调用,该循环触发 MySql 数据库上的 DELETE record FROM table

但现在我注意到,在表 project_queues 中,autoIncrement Id(主键)被设置回 1。 (这破坏了我在审计表中的引用。相同的记录现在指向多个不同的项目队列)

show create table project_queues;

CREATE TABLE `project_queues` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
   ...
   ...
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=1 

我不使用 TRUNCATE project_queues 或删除表结构并在代码中重新创建它。

有没有人遇到和我一样的问题?我在日志中也找不到任何异常。

我正在使用 Rails 5.2.3MariaDB 10.1

从应用程序到数据库的连接强制执行此 SQL 模式:

  • NO_AUTO_VALUE_ON_ZERO
  • STRICT_ALL_TABLES
  • NO_AUTO_CREATE_USER
  • NO_ENGINE_SUBSTITUTION
  • NO_ZERO_DATE
  • NO_ZERO_IN_DATE
  • ERROR_FOR_DIVISION_BY_ZERO

但我不认为这些与人工智能有关。

最佳答案

Auto_increment 可以通过更新重置。由于您将其用作队列,我想您不会进行更新,但值得一问。

此外,您使用的是什么表实现,MyIsam、InnoDB,其他...?

关于mysql - 自动增量已自动重置回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55512290/

相关文章:

Windows 操作系统中的 mysql 复制不起作用

mysql - 如何在数百万行中通过查询优化计数和排序

MySQL获取成员(member)下线

mysql - 如何在表中搜索多行或从串联值中搜索?

不会执行的 SQL 查询

ruby-on-rails - 更新后设计更改重定向

ruby-on-rails - RSolr RequestError Solr Response solr 配置中的严重错误

mysql - 基于年和月的存储过程选择

php - 使用 php 连接到数据库对我不起作用。用户 'ahmadham_ahmad' 的访问被拒绝

ruby-on-rails - Rails - 模型名称以 S 结尾