【发布时间】:2021-03-11 03:08:32
【问题描述】:
我正在使用 sequelize 6.5.0。我创建了一个简单的模型来做两件基本的事情:a)查找记录,b)创建记录。我无法创建记录;具体来说,具有主键的。如果我将列指定为 primaryKey,如下所示:
const Table = sequelize.define('table', {
id: {
type: DataTypes.UUID,
primaryKey: true
},
datum: {...}
...
并尝试像这样创建记录:
Table.create({datum: 'abc'})
然后它将尝试(但失败)设置主键:
INSERT INTO "table" ("id","datum") VALUES ($1,$2) RETURNING ...;
这是我没有要求它做的 50%。现在,我不需要发生这种情况,因为 id 的默认值已经在数据库级别处理。所以,下一个自然的举动是不将id指定为primaryKey:
const Table = sequelize.define('table', {
id: {
type: DataTypes.UUID,
// primaryKey: true
},
datum: {...}
...
但现在继续尝试变得聪明并发脾气:
Uncaught Error: A column called 'id' was added to the attributes of 'table' but not marked with 'primaryKey: true'
Q) 如何在创建时不处理主键?
【问题讨论】:
标签: node.js postgresql sequelize.js