如何插入具有空值的显式 ID 属性 的数据?

How to insert data with explicit id property which has null value?

我有一个带有显式 id 属性 的 js 对象。像这样:

const data = {
  user_id: null,
  user_email: faker.internet.email()
};

user_id 的值为 null,并且有一个 users table 使用 user_id 作为其主键。

我想正确插入这条数据,希望knex能遵守主键递增规则。

这是我的代码:

async function insert(user: any) {
  return await knex('users')
    .insert(user)
    .returning('*');
}

当我尝试插入此数据时,出现错误:

error: null value in column "user_id" violates not-null constraint

我该如何解决这个问题?

您可以将 user_id 的值设置为 undefined。然后它将插入数据并 遵守主键递增规则。

const data = {
  user_id: undefined,
  user_email: faker.internet.email()
};

检查 users table 中插入的行。 user_id 的值为 1