Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có cách nào khác để triển khai chương trình này mà không sử dụng vòng lặp while lồng nhau không?

Vì tất cả dữ liệu được sử dụng trong INSERT tuyên bố xuất phát từ các câu lệnh 'SELECT' của bạn, không có ích gì khi thực hiện thêm một chuyến đi vòng giữa ứng dụng java của bạn và cơ sở dữ liệu. Thực thi mọi thứ trong một câu lệnh SQL sẽ mang lại cho bạn hiệu suất tốt nhất.

Câu lệnh SQL của bạn sẽ giống như thế này

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

Và mã java của bạn có thể được rút gọn đến mức này

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. Chèn hàng loạt hoặc cập nhật với Hibernate?

  2. Cách nhập CSV vào MySQL Workbench

  3. error:command 'x86_64-linux-gnu-gcc' khi cài đặt mysqlclient

  4. Sử dụng toán tử EXCEPT trên phiên bản MySql 5.1

  5. Cách khôi phục kết xuất MySQL từ máy chủ đến vùng chứa Docker