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

使用Sequelize+TypeScript操作MySQL,如何实现表ID自动递增?

如何用Sequelize实现表ID自动创建与递增

当然可以,Sequelize原生就支持主键自动递增,你只需要修改模型中id字段的配置即可,完全不需要第三方包。

修改后的模型代码

import { DataTypes, Model } from "sequelize";
import db from "../config/database.congfi";

interface TodoAttributes {
  // 设为可选,因为创建数据时不需要手动传入
  id?: number;
  title: string;
  completed: boolean;
}

export class TodoInstance extends Model<TodoAttributes> {}

TodoInstance.init(
  {
    id: {
      type: DataTypes.INTEGER,
      primaryKey: true,
      allowNull: false,
      // 添加这一行,开启自动递增
      autoIncrement: true,
    },
    title: {
      type: DataTypes.STRING,
      allowNull: false,
    },
    completed: {
      type: DataTypes.BOOLEAN,
      allowNull: false,
      defaultValue: false,
    },
  },
  {
    sequelize: db,
    tableName: "todo",
  }
);

关键改动说明

  • 在id字段的配置中添加autoIncrement: true:这个配置会让Sequelize告知数据库将该字段设为自增主键,每次插入新数据时,数据库会自动生成并递增ID值。
  • 将TodoAttributes接口中的id设为可选(id?: number):因为创建数据时不需要手动传入ID,TypeScript会允许你省略这个字段,避免类型报错。

修改后,你插入数据时只需要传入title和completed(或只传title,因为completed有默认值),比如:

await TodoInstance.create({ title: "学习TypeScript" });

数据库会自动为这条数据分配一个递增的ID。

内容的提问来源于stack exchange,提问作者kingsJayson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:05:16