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

将指定MySQL建表语句转换为等效Knex查询语句

等效Knex查询语句实现

要实现你给出的MySQL建表语句,Knex需要结合schema构建器和原生SQL来设置自增起始值,具体代码如下:

knex.schema.createTable('test', (table) => {
  // 对应 id INT UNSIGNED NOT NULL AUTO_INCREMENT
  table.integer('id').unsigned().notNullable().autoIncrement();
  // 对应 name VARCHAR(100)
  table.string('name', 100);
  // 对应 unique (id)
  table.unique('id');
})
// 通过原生SQL设置自增起始值为1001
.raw('AUTO_INCREMENT = 1001')
.then(() => {
  console.log('表创建成功');
})
.catch((err) => {
  console.error('表创建失败:', err);
});

或者,如果你更倾向于创建表后单独修改自增起始值,也可以用以下写法:

knex.schema.createTable('test', (table) => {
  table.integer('id').unsigned().notNullable().autoIncrement();
  table.string('name', 100);
  table.unique('id');
})
.then(() => {
  // 创建表后执行ALTER语句设置起始值
  return knex.raw('ALTER TABLE test AUTO_INCREMENT = 1001');
})
.then(() => {
  console.log('表创建并配置成功');
})
.catch((err) => {
  console.error('操作失败:', err);
});

说明

Knex的schema构建器没有直接提供设置自增起始值的API,所以需要通过raw()方法执行原生MySQL语句来实现AUTO_INCREMENT = 1001的需求。两种写法都能达到等效效果,可根据你的代码风格选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:37:12