• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

519
Vistas
¿Cómo conectar o crear muchos registros relacionados en una consulta?

Tengo el siguiente archivo prisma.schema para una aplicación pequeña donde las cuentas de usuario tienen una relación de muchos a muchos con las habilidades. Estoy tratando de escribir una consulta de prisma que acepte una lista de habilidades y cree una nueva cuenta y también conecte las habilidades a la cuenta de usuario si existe, o cree la habilidad y luego la conecte a la cuenta si no existe.

 model Account { id Int @id @default(autoincrement()) skills SkillsOnAccounts[] } model Skill { id Int @id @default(autoincrement()) name String accounts SkillsOnAccounts[] } model SkillsOnAccounts { skill Skill @relation(fields: [skillId], references: [id]) skillId Int account Account @relation(fields: [accountId], references: [id]) accountId Int @@id([skillId, accountId]) }

Tengo algunos problemas al usar connectOrCreate .

 prisma.account.create({ data: { skills: { create: skills.map((skill) => { return { skill: { connectOrCreate: { where: { name: skill.value }, create: { name: skill.value, }, }, }, } }), }, } })

Sin embargo, estoy recibiendo un error,

 Unknown arg `name` in data.skills.create.0.skill.connectOrCreate.where.name for type SkillWhereUniqueInput. Did you mean `id`? Available args: type SkillWhereUniqueInput { id?: Int }

Parece que lo único aceptado en el objeto de conexión connectOrCreate es ID. Verifiqué esto, y funcionó para mí, pero esto parece contrario a la intuición. Si estoy usando connectOrCreate, es porque posiblemente todavía no tengo un registro para ese elemento. En este caso, es posible que no tenga una habilidad persistente en la base de datos, así que quiero crearla. Por lo tanto, todavía tengo una identificación. ¿De qué sirve usar connectOrCreate si ya tiene identificaciones para todo lo que desea conectar? ¿Puedes simplemente conectarte?

Me encantaría recibir consejos sobre cómo conectarse o crear correctamente cuando no tiene la identificación. Quiero poder pasar el nombre de la habilidad a connectOrCreate para que conecte la habilidad con ese nombre o cree una nueva habilidad con ese nombre.

¿Quizás porque no hay garantía de que el nombre sea único? Si agrego una restricción, ¿funcionaría?

over 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La respuesta fue que no había garantía de que el nombre fuera único. ¡Agregar @unique al campo de nombre del modelo de habilidad solucionó el problema!

over 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda