Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

582
Views
¿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?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

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!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!