Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

378
Vistas
NodeJS y MySQL: Importación de datos CSV con asociaciones

He buscado por la web y he encontradoesto que puede estar relacionado con mi duda pero como no entiendo vengo a preguntar.

Estoy tratando de insertar datos en tablas. Estoy usando sequelize v6 y mysql .

que tengo en mi base de datos

Tengo 2 mesas, estudiante y municipio.

tabla de estudiantes: id, name, email, township_id

tabla de municipio: id, name

Lo que tengo en mis asociaciones

modelo de estudiante

 Student.belongsTo(models.Township, { foreignKey: "townshipId", as: "township", });

modelo de municipio

 Township.hasMany(models.Student, { foreignKey: "townshipId", as: "township", });

Lo que tengo en req :

En mi solicitud, tengo datos como los siguientes:

 { name: 'john', email: 'john@gmail.com', township: 'Flank', }

Pregunta

En realidad, estoy tratando de insertar datos csv de forma masiva en mi base de datos. Los usuarios finales completarán los datos en Excel con los datos anteriores (en el requisito) y los guardarán como un archivo csv y lo importarán al sistema. El problema es que el valor que obtengo al analizar csv es el nombre del municipio como text value , en este caso Flank . Pero necesito cambiarlo a un integer township_id para poder insertarlo en la tabla de students con ese township_id.

(Lo que he hecho: tomo el nombre del municipio en este caso Flank y ejecuto la consulta SELECT township_id FROM townships WHERE name = 'Flank' , y obtengo township_id de vuelta si Flank está allí en la tabla de municipios. Entonces, ahora puedo usar eso township_id en la inserción en la tabla de students . Pero creo que es muy costoso y otro hecho es que también tengo otros 50 campos como este).

Por lo tanto, mi pregunta es cómo puedo insertar ese township: 'Flank' en la tabla de students sin encontrar explícitamente township_id primero (evitando lo que he hecho).

Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema es que el valor que obtengo al analizar csv es el nombre del municipio como valor de texto, en este caso Flank . Pero necesito cambiarlo a un entero township_id para poder insertarlo en la tabla de students con ese township_id .

Para esto, en lugar de

 INSERT INTO students (name , township, ...) VALUES ('John' , 'Flank' , ...)

debes usar

 INSERT INTO students (name , township_id, ...) SELECT 'John' , township_id, ... FROM towns WHERE town_name = 'Flank';

PD. No sé cómo se realiza INSERT .. SELECT en la sintaxis de script/marco.

over 4 years ago · Santiago Trujillo 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda