You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeORM迁移中正确创建自增整数字段

问题原因

配置缺少自增对应的生成策略参数,导致自增属性未生效。
isGenerated: true的作用仅为标记该列值由系统自动生成、不需要手动插入,并不直接等价于MySQL的AUTO_INCREMENT(即你在Workbench里看到的AI标识)。该参数必须搭配generationStrategy显式指定值的生成规则,缺省配置下TypeORM不会主动为整数主键添加MySQL自增属性,部分版本甚至会默认使用适配PostgreSQL的序列生成逻辑,完全无法触发MySQL自增配置。

修复方案

在id列的配置中补充generationStrategy: 'increment'即可,修正后的列配置代码如下:

{
    name: "id",
    type: "int",
    isPrimary: true,
    isGenerated: true,
    generationStrategy: "increment"
}

修改后重新执行迁移,id列就会被正确标记为AI自增属性。

补充说明
  • 如果是通过实体装饰器定义表结构,使用@PrimaryGeneratedColumn()装饰器时TypeORM会自动补全上述两个配置,无需手动声明;但手写QueryRunner迁移代码时,必须显式配置所有自增相关参数,不能仅靠isGenerated触发生成逻辑。
  • 注意不要把generationStrategy设为uuid或者其他值,这类策略会生成字符串类型的唯一ID,不会触发整数自增效果。

内容的提问来源于stack exchange,提问作者Сашко Лисий

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 10:06:35