所以,我对mysql关系、upserting之类的东西不太了解。我正在寻找一个解释如何(如果?)这是可能的。
[
{
scheduledAt: '17:55',
league: { name: 'Champions League - Group Stage' }
},
{
scheduled_at: '19:45',
league: { name: 'Champions League - Group Stage' }
},
{
scheduled_at: '19:30',
league: { name: 'Primera B Metropolitana' },
},
{
scheduled_at: '21:00',
league: { name: 'Primera B Metropolitana' }
}
]
假设我想插入这个数据图。根对象将进入 fixtures
table,还有 league
财产是这种关系在 Fixtures
模型。
{
league: {
relation: Model.BelongsToOneRelation,
modelClass: `${__dirname}/League`,
join: {
from: 'fixtures.league_id',
to: 'leagues.id'
}
}
}
所以,现在如果我用 insertGraph
插入所有这些数据。它插入到两个 fixtures
以及 leagues
表和关系如您所料。
{
"scheduled_at": "17:55",
"league": {
"name": "Champions League - Group Stage",
"created_at": "2018-10-03T13:02:03.995Z",
"id": 1
},
"league_id": 1
"created_at": "2018-10-03T13:02:04.042Z",
"id": 1
}
但是,如果我插入完全相同的league对象,它只会创建另一个重复的league和fixture行,其中包含下一个递增的id(在本例中为2)。
它是否有可能找到具有该名称的联盟,然后使用该行/id作为 league_id
,就像这样:
{
"scheduled_at": "17.55",
"league_id": 1
"created_at": "2018-10-03T13:02:04.042Z",
"id": 2
}
抱歉,我解释得太离谱了。但我对术语不太感兴趣,所以我不知道我到底想做什么。我觉得这是一件非常简单的事情,但也许我的结构或方法是错误的。
暂无答案!
目前还没有任何答案,快来回答吧!