查询具有一对一关系的插入数据

时间:2018-04-13 21:29:37

标签: mysql sequelize.js

假设我有两个模型UsersStatistics。 这些模型的一对一关系如下所示:

Users.hasOne(Statistics, {
    foreignKey: {
        name: 'userId',
        unique: true,
        allowNull: true,
    },
    onDelete: 'CASCADE'
});

但是,我不明白如何将数据插入子表。我尝试这样做,但它不起作用(Statistics表字段为空)也不会引发任何错误。

Users
.build({
    username: req.body.username,
    email: req.body.email,
    Statistics: {
        gamesWon: 10 // For example.
    }
},
{
    include: [ Statistics ]
})
.save()
.then(() => {
    res.render('./user/register', { success: true } );
})
.catch(sequelize.ValidationError, (err) => {
    res.send(err);
});

我做错了什么?如何正确地将数据插入Statistics表。

1 个答案:

答案 0 :(得分:1)

在使用{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "resources": [ { "name": "[concat('my-loganalytics-workspace-name', '/', subscription().subscriptionId)]", "type": "Microsoft.OperationalInsights/workspaces/dataSources", "apiVersion": "2015-11-01-preview", "tags": {}, "properties": { "linkedResourceId": "[concat(subscription().Id, '/providers/microsoft.insights/eventTypes/management')]" }, "kind": "AzureActivityLog" } ] } 方法建立关联时,它将为父类添加getter和setter以及createChild方法。

它将添加用户实例方法“ getStatistics”,“ setStatistics”和“ createStatistics”

要将统计信息链接到用户,您将需要调用方法

hasOne

根据您的情况。

完整示例应为:

user.createStatistics({
        gamesWon: 10 
    })