Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine andere Möglichkeit, dieses Programm zu implementieren, ohne eine verschachtelte While-Schleife zu verwenden?

Da alle Daten im INSERT verwendet werden -Anweisung von Ihren 'SELECT'-Anweisungen stammt, macht es keinen Sinn, den zusätzlichen Hin- und Rückweg zwischen Ihrer Java-App und der Datenbank zu nehmen. Wenn Sie alles in einer SQL-Anweisung ausführen, erhalten Sie die beste Leistung.

Ihre SQL-Anweisung sollte so aussehen

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

Und Ihr Java-Code kann darauf reduziert werden

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