【发布时间】:2016-07-11 22:12:10
【问题描述】:
我在我的数据库中已经存在并定义了主键的对象上调用save()。
Sequelize 没有更新对象,而是告诉我id must be unique。为什么?
我不想说update( {every,single,field,except,the,id})。太无聊了。
这是我当前的代码:
const instance = db.dbo__peach_payments_transactions.build(existingPayment);
return db.transaction( async (transaction) => {
return instance.save();
});
我现在也试过了:
return instance.update({fields: [
'updated_at',
'orders_id',
'payment_states_id',
'response_data',
'token',
'result',
'reason_code',
'reason_message',
'price',
'processed_at']});
});
但这会生成 相反 sql,而不是保存这些字段,而是将它们排除在外,给我错误:updated_at cannot be null(即使它不为空)使用此 sql:
"INSERT INTO "dbo"."peach_payments_transactions" ("peach_payments_transactions_id","created_at") VALUES ('7fb301e9-bb72-4a70-9ee5-0db1376e83e8','2016-07-11 13:48:20.137 +00:00') RETURNING *;"
【问题讨论】:
-
你能检查一下
instance.isNewRecord是否有false的值吗?您如何获得instance?使用.find()函数? -
当它调用我的服务器时,我从客户端(浏览器)获取实例。我现在试试 set isNewRecord,谢谢,文档中没有。
-
是的,谢谢,这行得通。哦,伙计,我希望 Sequelize 的人能更新他们的文档。我觉得我正在与这个图书馆作斗争。 Stackoverflow 上也几乎没有人 :-(
-
我很高兴它成功了!你能把我的回答标记为正确吗?呵呵:P