Orm 在Sequelize模型中,如何将一列的值默认为与另一列的值相同?
我有一个简单的模型,如预期的那样有一个Orm 在Sequelize模型中,如何将一列的值默认为与另一列的值相同?,orm,sequelize.js,feathers-sequelize,Orm,Sequelize.js,Feathers Sequelize,我有一个简单的模型,如预期的那样有一个\u id列,但是有一个次要id,我希望默认为\u id列的相同值。这是当前模型的外观: const sequelize = app.get('sequelize') sequelize.define('myTable', { _id: { type: Sequelize.INTEGER, allowNull: false, primaryKey: true, autoIncrement: true }, oth
\u id
列,但是有一个次要id,我希望默认为\u id
列的相同值。这是当前模型的外观:
const sequelize = app.get('sequelize')
sequelize.define('myTable', {
_id: {
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
otherId: {
type: Sequelize.TEXT,
allowNull: false
}
someField: {
type: Sequelize.TEXT,
allowNull: false
}
})
因此,如果在插入新行时没有为
otherId
传递值,我希望它与\u id
的值相同,可以这样做吗?如果是这样,我该如何实现这一点?您只需从另一列通知Sequelize to default:
otherId: {
type: Sequelize.TEXT,
allowNull: false,
defaultValue: Sequelize.col('_id')
}
也许这不是你想要的,但希望它能为你提供参考 模型
class ModelPengguna扩展了模型{}
ModelPengguna.init({
用户id:{
类型:Sequelize.UUID,
默认值:Sequelize.UUIDV1
},
姓名:{
类型:DataTypes.VIRTUAL,
得到(){
返回`/${this.id}/${this.user\u id}`
}
}
},{sequelize})
控制器
const lihat=wait pengguna.findAll();
log(JSON.stringify(lihat,null,2))
结果
[
{
“名称”:“/1/ae0c6760-3c54-11eb-80ed-59fb8d2c0509”,
“id”:1,
“用户id”:“ae0c6760-3c54-11eb-80ed-59fb8d2c0509”,
“createdAt”:“2020-12-12T08:33:15.991Z”,
“更新日期”:“2020-12-12T08:33:15.991Z”
}
]