sql >> Base de Datos >  >> RDS >> Mysql

¿Hay alguna forma diferente de implementar este programa sin usar el ciclo while anidado?

Dado que todos los datos utilizados en INSERT La declaración proviene de sus declaraciones 'SELECT', no tiene sentido tomar el viaje de ida y vuelta adicional entre su aplicación Java y la base de datos. Ejecutar todo en una instrucción SQL le brindará el mejor rendimiento.

Su declaración SQL debería ser así

INSERT INTO snomedinfo_data (refid,id,effectivetime,active,moduleid,conceptid,languagecode,typeid,term,caseSignificanceid)
SELECT d.refid, d.id, d.effectivetime, d.active, d.moduleid, d.conceptid, d.languagecode, d.typeid, d.term, d.caseSignificanceid
FROM snomed_descriptiondata d
JOIN snomed_conceptdata c ON c.id = d.conceptid AND c.active = 1 AND d.active = 1

Y su código java puede reducirse a esto

try {
    oRoot = Root.createDbConnection(null);
    String sql = "INSERT INTO snomedinfo_data...";
    oPrStmt = oRoot.con.prepareStatement(sql);
    oPrStmt.executeUpdate();
}