sql >> Database teknologi >  >> RDS >> Mysql

Er der en anden måde at implementere dette program på uden at bruge indlejret while-løkke?

Da alle data brugt i INSERT sætningen kommer fra dine 'SELECT'-udsagn, det nytter ikke noget at tage den ekstra rundrejse mellem din java-app og databasen. Udførelse af alt i én SQL-sætning vil give dig den bedste ydeevne.

Din SQL-sætning skal være sådan her

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

Og din java-kode kan koges ned til dette

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


  1. SQL Server Performance File IO-statistikker

  2. Hvordan genererer man en række tal mellem to tal?

  3. SQL:Oprettelse af en relationstabel med 2 forskellige auto_increment

  4. MyBatis Batch Insert/Update for Oracle