Допустим, у меня есть таблица t1
, которая является внешним ключом для другой таблицы t2
. Для простоты t2
имеет только столбцы name и id, которые являются уникальными. Я храню идентификатор в t1
.
Моя проблема в том, что я хочу написать мутацию, в которой я знаю имя, но я не знаю идентификатор, когда иду хранить что-то в t1
. Есть ли способ сделать запрос внутри моей мутации, чтобы он преобразовал значение в моем утверждении?
Возможно, плагин, который я могу добавить в свой проект?
В результате я передаю известное имя, но хочу сохранить идентификатор
mutation addT1(
$knownT2Name: String!,
) {
createT1 (
input: {
t1: {
id: $component
# Is there a way to convert this to the id inside the query
# Or do I need to query for the id with the name first then pass that in?
t2_id: $knownT2Name
}
}
) {
t1 {
id
t2_id
}
}
}
Это простой пример. Причина, по которой я не хочу запрашивать идентификатор с именем, заключается в том, что t1
является внешним ключом для множества других таблиц с такой же ситуацией, и я не хочу делать 9+ запросов просто для преобразования каждая строка в целочисленный идентификатор.
Я бы предпочел сделать что-то вроде этого:
mutation addT1(
$knownT2Name: String!,
) {
createT1 (
input: {
t1: {
id: $component
t2_id: t2Byt2(name: $knownT2Name) { id }
}
}
) {
t1 {
id
t2_id
}
}
}
Где t2Byt2(name: $knownT2Name) { id }
будет подзапросом, который передает имя и получает идентификатор, затем сохраняет идентификатор в 't2_id'
Я смотрю на плагин вложенных мутаций для постграфа ( Вот GitHub ), но у меня не было никакой тяги. Это не совсем то, что я ищу.