【发布时间】:2021-10-17 20:13:00
【问题描述】:
我有续集模型:
'use strict';
module.exports = (sequelize, DataTypes) => {
const Image = sequelize.define('Image', {
id: {
type: DataTypes.BIGINT,
autoIncrement: true,
unique: true,
primaryKey: true
},
url: {
type: DataTypes.STRING,
allowNull: false,
}
},
{
timestamps: false
});
Image.associate = (models) => {
//some association here
};
return Image;
};
我正在尝试创建这样的新记录:
const img = await Images.create({
url: '/newUrl'
}).catch(error => {
throw errors.initError(error);
});
它执行一个查询
执行(默认):INSERT INTO "Images" ("id","url") VALUES (DEFAULT,'/newUrl') 返回 *;
我收到一个错误
{
"message": "id must be unique",
"type": "unique violation",
"path": "id",
"value": "18",
"origin": "DB",
"instance": {
"id": null,
"url": "/newUrl"
},
"validatorKey": "not_unique",
"validatorName": null,
"validatorArgs": []
}
不应该自己sequelize句柄自增字段吗?
【问题讨论】:
-
或许将其改为
SERIAL可以吗? postgresql.org/docs/9.5/static/… -
BigInt id 适用于其他模型
标签: node.js postgresql sequelize.js