我刚刚遇到了一个我无法解决的问题。
我有一个数据库表project_queues
它用作队列,我在其中存储一些记录。处理记录后,它们将被删除。
删除是由 Rails 构造调用的record.destroy
在触发的循环中DELETE record FROM table
在MySql数据库上。
但现在我注意到,在表中project_queues
the 自动递增 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
或者删除表结构并在代码中再次创建它。
有人像我一样遇到过类似的问题吗?我在日志中也找不到任何异常。
我在用着轨道 5.2.3, 玛丽亚数据库 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
但我不认为这些和AI有什么关系。
Auto_increment 可以通过更新重置。由于您将其用作队列,我想您不会进行更新,但值得一问。
另外,你使用什么表实现,MyIsam,InnoDB,其他......?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)