sql >> Database >  >> RDS >> Mysql

Is er een andere manier om dit programma te implementeren zonder geneste while-lus te gebruiken?

Aangezien alle gegevens die worden gebruikt in de INSERT statement afkomstig is van je 'SELECT'-statements, heeft het geen zin om de extra heen-en-terugreis tussen je java-app en de database te maken. Als u alles in één SQL-instructie uitvoert, krijgt u de beste prestaties.

Uw SQL-statement zou er zo uit moeten zien

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

En je Java-code kan hierop worden samengevat

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


  1. Waarom mysql max_allowed_packet automatisch wordt gereset naar 1m

  2. python odo sql AssertionError:datashape moet recordtype zijn, heb 0 * {...}

  3. SQL WHERE.. IN-clausule meerdere kolommen

  4. Java Class.forName, stuurprogramma voor laden van JDBC-verbinding