【发布时间】:2015-04-09 08:11:21
【问题描述】:
我有以下带有主键 ID 的模型:
attributes: {
id: {
type: 'integer',
autoIncrement: true,
primaryKey: true,
unique: true
},
name: {
type: 'string',
unique: true,
required: true
},
}
我正在创建如下模型:
var model = {
id: undefined,
name: 'name',
};
waterlinemodel.create(model).exec(function(error, result) {});
但它会引发以下错误: 错误 (E_UNKNOWN) 遇到意外错误] 详细信息:错误:“id”列中的空值违反非空约束
既然 'id' 是主键,waterline 不应该看 'id' 属性的值是什么。
如何解决这个错误?我不想删除“id”,因为我已经为模型创建了值对象,它包含模型的所有属性。我正在根据需要设置值对象属性。我不需要为创建设置 id 属性。
【问题讨论】:
-
如果你不需要设置id属性,或者没有理由要分配自己的主键id,为什么要这样做?如果没有明确告知不要这样做,则将自动分配主键。删除“id: undefined”可能就行了。
-
根据java脚本。如果我没有定义 id 或者我将值赋值为 undefine 两者都是相同的。仍然水线给出错误。
-
使用 autoPK = true?根据您在下面的回复,autoPK 是错误的,因此您必须提供有效的 ID。如果将 autoPK 设置为 true,则不必定义一个(可以省略 id 属性)。
标签: database node.js sails.js waterline