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

时间:2019-03-26 02:30:42

标签: postgresql knex.js

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

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

user_id的值为空,并且存在一个使用users作为其主键的user_id表。

我想正确插入此数据,希望knex可以遵守主键递增规则。

这是我的代码:

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

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

  

错误:“ user_id”列中的空值违反了非空约束

我该如何解决?

1 个答案:

答案 0 :(得分:0)

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

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

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