Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли различен начин за изпълнение на тази програма без използване на вложен цикъл while?

Тъй като всички данни, използвани в INSERT изявлението идва от вашите оператори 'SELECT', няма смисъл да правите допълнително двупосочно пътуване между вашето java приложение и базата данни. Изпълнението на всичко в един SQL оператор ще ви осигури най-добра производителност.

Вашият SQL израз трябва да бъде такъв

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

И вашият Java код може да се сведе до това

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Достъп до отдалечена база данни на mysql от командния ред

  2. Как да запълним празнините в датата в MySQL?

  3. MySql C++ конектор getString() не работи правилно, докато getInt работи перфектно

  4. Вземете първи/последни n записа на група от

  5. BOOLEAN или TINYINT объркване