Directus存在数据时无法创建条目:ID唯一性错误排查求助
问题排查方向
- 检查Directus的ID字段配置:进入对应表的字段设置页面,确认ID字段的「自动生成」选项已开启,且设置为使用数据库自增模式。如果没开启这个选项,Directus会要求手动输入ID,很容易和已有数据的ID重复。
- 核对数据库自增序列与实际数据:登录数据库,先查询表中最大的ID值,再查看当前自增序列的数值(比如MySQL可执行
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='你的数据库名' AND TABLE_NAME='你的表名';)。如果自增序列值小于等于表中最大ID,就会导致生成重复ID,此时执行ALTER TABLE 你的表名 AUTO_INCREMENT = 最大ID+1;调整序列即可。 - 清除Directus缓存:Directus可能缓存了旧的ID序列状态,尝试重启Directus服务,或者在后台设置里找到缓存清理选项清空缓存,再测试创建条目。
- 排查自定义逻辑干扰:如果写过自定义的Flow、API钩子或扩展,检查是否在创建条目时手动赋值了ID,覆盖了数据库自增逻辑。比如某些自定义钩子可能硬编码了ID值,导致和自增生成的ID冲突。
内容的提问来源于stack exchange,提问作者Darryl Morley
相关产品推荐
相关产品推荐

