我遇到了一个我无法解决的问题.
我有一个数据库表project_queues用作队列,我在其中存储一些记录.处理记录后,它们将被删除.
Rails构造record.destroy在一个循环中调用删除,该循环触发MySql数据库上的DELETE record FROM表.
但是现在我注意到,在表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.3,MariaDB 10.1.
从应用程序到数据库的连接强制执行以下SQL模式:
> NO_AUTO_VALUE_ON_ZERO
> STRICT_ALL_TABLES
> NO_AUTO_CREATE_USER
> NO_ENGINE_SUBSTITUTION
> NO_ZERO_DATE
>